Spring-Boot 整合 Mybatis
springboot整合Mybatis
- IDEA安装插件MyBatisX能更高效开发
可以Mapper接口和Mapper.xml互相跳转等功能
导入mybatis-spring-boot-start
-
GitHub地址,选择最新版 https://github.com/mybatis/spring-boot-starter
-
选择mybatis-spring-boot-starter,然后选pom文件格式
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--引入druid-starter-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
<!--引入最新版mybatis-spring-boot-starter-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
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>
<!-- 不需要配置什么,因为spirngboot全帮我们配好了-->
</configuration>
xxxMapper接口
@Mapper
public interface xxxMapper {
public Account getAccount(Integer id);
}
xxxMapper接口绑定 ===> xxxMapper.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">
<!--namespace=绑定一个对应的Mapper接口-->
<mapper namespace="com.gwq.mapper.xxxMapper">
<!--在这里面写sql-->
</mapper>
配置mybatis全局配置文件位置
- 全局配置文件位置
- sql映射文件位置
AccountController
@RestController
public class AccountController {
@Autowired
AccountService accountService;
//测试mybatis
@GetMapping("/account/{id}")
public Account getById(@PathVariable("id") int id){
return accountService.getAccountByid(id);
}
}
编写Controller层和Service层
最佳实战
主键自增,会默认放进对应插入pojo对象里面,即使你没传id值
===================================
整合Mybatis-Plus
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--引入druid-starter-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
<!--引入Mybatis-Plus-boot-starter-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
自动配置
● MybatisPlusAutoConfiguration 配置类,MybatisPlusProperties 配置项绑定。
mybatis-plus:xxx 就是对mybatis-plus的定制
● SqlSessionFactory 自动配置好。底层是容器中默认的数据源
● mapperLocations 自动配置好的。有默认值。
classpath*:/mapper/**/*.xml;
任意包的类路径下的所有mapper文件夹下任意路径下的所有xml都是sql映射文件。
建议以后sql映射文件,放在 mapper下
● 容器中也自动配置好了 SqlSessionTemplate
● @Mapper 标注的接口也会被自动扫描;
建议直接 @MapperScan("com.atguigu.admin.mapper") 批量扫描就行
优点
只需要我们的Mapper继承 BaseMapper 就可以拥有crud能力
技巧:标注类对应表名,设置属性不在表内