SpringBoot 2.0 整合Mybatis详细步骤

=======spring boot 2.0 + Mybatis整合篇之XML,注解=======================================

1.pom.xml添加:--------------------------------------------------------------------------
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.3.2</version>
</dependency>
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid-spring-boot-starter</artifactId>
  <version>1.1.9</version>
</dependency>


2.第2步分两个分支同步进行,支持XML和注解两种方式,如果SQL中没有Left join等高级关联查询,用注解方式即可解决,
如果有高级查询,需要配合XML方式写高级SQL语句。---------------------------------------------------------------

2.1 XML方式:接口类UserMapper


2.1.1 application.properties文件中添加:-----------------------------------------------------

mybatis.config-location=classpath:mybatis-config.xml

server.port=81
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/mybaitsdemo
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

2.1.2 建立实体类:-------------------------------------------------------------------------------
//需要建立set get方法,此处暂且省略了。
public class User {

private Long id;
private Integer age;
private String name;

public User() {

}
}

--接口类-Dao包中-------------------------------------------------------------------

  @Component
  public interface UserM {

  User findById(@Param("id") Long id);

  }

--------------------------------------------------------------

2.1.3 resources文件夹目录添加: mybatis-config.xml文件 ---------------------------------------

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <mappers>
    <mapper resource="mapper/UserMapper.xml"/>
  </mappers>
</configuration>

2.1.4 resources文件夹目录添加: mapper目录,在mapper目录里添加UserMapper.xml-------------------
------------------添加完后的目录结构:resources/mapper/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">
<mapper namespace="com.lemi.xxxx">
  <select id="selectById" resultType="com.lemi.mydemo.entity.User">
    select * from user where id = #{id}
  </select>
</mapper>

 

2.1.5 在UserDao类中定义: 属性,sqlSession对象在spring boot加载的IOC容器中自动建立
并且把application.properties文件中配置的DataSource的值赋给sqlSession对象。------------------------------

  @Component //UserDao必须加 @Component 注解,在controller中可以自动注入 @Autowired
  public UserDao class{

  @Autowired
  private SqlSession sqlSession;

  public User selectById(long id) {

  return this.sqlSession.selectOne("selectById", id); //sqlSession.selectOne(String,gvr)

  }
  }
2.1.6 在controller包下添加:
  @RestController
  public class Home {

  @Autowired
  private UserDao userDao;

  @RequestMapping("/")
  public User index(){

  return userDao.selectById(1);
  }
  }

2.1.7 运行程序测试是否正常,浏览器中输入:http:localhost:81/ ----------------------------------------------------------

 

2.2 注解方式:注解方式下必须要Mapper接口类-------------------------------------------------------

2.2.1 application.properties文件中添加:-----------------------------------------------------

##mybatis.config-location=classpath:mybatis-config.xml (注解方式下不需要)

server.port=81
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/mybaitsdemo
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

2.2.2 建立实体类:-------------------------------------------------------------------------------
//需要建立set get方法,此处暂且省略了。
public class User {

private Long id;
private Integer age;
private String name;

public User() {

}
}

2.2.3 根据实体类建立Mapper接口类文件:UserMapper或UserM 名字随便起意义最好与实体类有关联 -------

  @Component
  public interface UserM {

  //注解形式配置SQL
  @Select("select * from user where id = #{id} ")
  User findById(@Param("id") Long id);

  }


2.2.4在UserDao类中定义:-------------------------------------------------------------------------

  @Component
  public UserDao class{
  @Autowired
  private UserMapper userMapper;

  public User selectById(long id) {
  return userMapper.findById(id);
  }
  }
2.2.5 在程序启动类中添加 @MapperScan("com.lemi.mydemo.dao")------------------------------------
------------------指定UserMapper接口类的包名,也可以是com.lemi.mydemo.* -----------------

  @SpringBootApplication
  @MapperScan("com.lemi.mydemo.dao")
  public class MydemoApplication {

  public static void main(String[] args) {
  SpringApplication.run(MydemoApplication.class, args);
  }
  }
2.2.6 在controller包下添加
  @RestController
  public class Home {

  @Autowired
  private UserDao userDao;

  @RequestMapping("/")
  public User index(){

  return userDao.selectById(1);
  }
  }

2.2.7 运行程序测试是否正常,浏览器中输入:http:localhost:81/ ----------------------------------------------------------

 

posted @ 2018-03-28 01:38  阿强是小兵  阅读(378)  评论(0编辑  收藏  举报