SpringBoot MyBatis 整合
# MyBatis 整合
引入依赖
pom.xml
文件<!--mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!--测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency>
在SpringBoot的 全局属性(application.properties文件) 添加参数
# mybatis 别名扫描 mybatis.type-aliases-package=com.pojo # mapper.xml文件位置 (使用在有映射的前提) mybatis.mapper-locations=classpath:mappers/*.xml
创建 User实体类 (指定库中的表列属性信息)
package com.pojo; import javax.persistence.*; import java.io.Serializable; import java.util.Date; public class User implements Serializable { private Long id; // 用户名 private String userName; // 密码 private String password; // 姓名 private String name; // 年龄 private Integer age; // 性别,1男性,2女性 private Integer sex; // 出生日期 private Date birthday; //省略 get 、 set 和 toString }
表列名 和 类属性名 一致,MyBatis不支持 驼峰、下划线 命名方式
创建
UserMapping
接口 ,全限定名 com.mapping.UserMappingpackage com.dao; import com.pojo.User; import java.util.List; public interface UserMapping { List<User> findAll(); }
创建
UserMapping.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.mapping.UserMapping"> <select id="findAll" resultType="user"> select * from tb_user </select> </mapper>
Mapper映射加载 。加载方式有两种
使用 @Mapping注解 在
UserMapping
接口 添加@Mapper
注解 进行识别@Mapper public interface UserMapper { .... }
使用 @MapperScan注解 扫描的包 在
@SpringBootApplication
注解下的启动类,添加@MapperScan注解 value参数为 扫描的包路径package com; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; // 启动类 @SpringBootApplication @MapperScan("com.mapping") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class , args); } }
测试
package com.dao; import junit.framework.TestCase; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class UserDaoTest extends TestCase { @Autowired private UserMapping userMapping; @Test public void findAll() { for (User user : userMapping.findAll()) { System.out.println(user); } } }