zoukankan      html  css  js  c++  java
  • springboot-整合mybatis

    1、引入依赖

    pom.xml:

    <!--引入mybatis依赖(使用mybatis时配置)-->
        <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>1.1.1</version>
        </dependency>
    
        <!--数据库驱动-->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
        </dependency>
    。。。。。。
    <!-- maven项目中src源代码下的xml等资源文件编译进classes文件夹,
          注意:如果没有这个,它会自动搜索resources下是否有mapper.xml文件,
          如果没有就会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.pet.mapper.PetMapper.selectByPrimaryKey-->
    <build>
      <resources>
        <resource>
          <directory>src/main/java</directory>
          <includes>
            <include>**/*.xml</include>
          </includes>
        </resource>
      </resources>
    </build>

    2.、配置数据库

    application.properties:

    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mysql-boot
    spring.datasource.username=root
    spring.datasource.password=123123
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    3、Mybatis文本:

    UserMapper.xml:

    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    
    <!--在MyBatis中,Mapper中的namespace用于绑定Dao接口的,即面向接口编程。
    它的好处在于当使用了namespace之后就可以不用写接口实现类,业务逻辑会直接通过这个绑定寻找到相对应的SQL语句进行对应的数据处理-->
    <mapper namespace="com.springboot.mapper.UserMapper">
        <select id="getUserList" parameterType="com.springboot.model.User" resultType="com.springboot.model.User">
            select id,name,passWord from tb_user where 1=1
            order by ranking asc
        </select>
    
        <select id="getUserInfo" parameterType="string" resultType="com.springboot.model.User">
            select id,name,passWord from tb_user where id=#{id}
        </select>
    </mapper>

    4、App启动类

    App.class:

    @EnableAutoConfiguration
    @MapperScan(basePackages = {"com.springboot.mapper"})//注意:@MapperScan配置成com.springboot.*,会出现以下异常:
    //org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.springboot.service.userService.getUserList
    @ComponentScan(basePackages = {"com.springboot.*","com.springboot.*.*"})//组件扫描,配置扫描的包
    public class App 
    {
        public static void main( String[] args )
        {
            System.out.println( "Hello World!" );
            //启动springboot项目
            SpringApplication.run(App.class,args);
            System.out.println( "success..." );
        }
    }

    5、interface

    UserMapper.class

    package com.springboot.mapper;
    
    import com.springboot.model.User;
    
    import java.util.List;
    
    public interface UserMapper {
        public List<User> getUserList(User user);
    
        public User getUserInfo(String id);
    }

    注意:

    1、如果接口文件名UserMapper和配置文件名UserMapper.xml名称不同时,会出现

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.springboot.mapper.UserMapper.getUserList

    2、@MapperScan配置成com.springboot.*,会出现以下异常:

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.springboot.service.userService.getUserList

     3、接口和配置文件在同一个文件夹下且名称一致

  • 相关阅读:
    2 实现第一个Django网站 博客
    jeecms支持的freemaker标签大全
    dao 获取表最大排序实现
    spring对数据库特殊字段的支持
    hibernate id生成器配置
    Long与long的比较
    jquery validation ajax 验证
    swfupload用法总结
    oracle对序列的操作
    jquery.layout框架分割线
  • 原文地址:https://www.cnblogs.com/lijianda/p/11017797.html
Copyright © 2011-2022 走看看