Spring boot用gradle整合mybatis+mybatis-plus
一 整合Mybatis
我先展示下我的目录结构
如图:是我的目录结构,下面的文件位置都是根据这个目录结构所写
一.引入依赖
//配置mybatis 数据源
compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.0")
二.配置application.yml文件
spring:
datasource: # 指定数据源
url: jdbc:mysql://127.0.0.1:3306/demo?serverTimezone=GMT
username: root
password:
driver-class-name: com.mysql.jdbc.Driver
mybatis:
type-aliases-package: com.entity//指定实体类位置
mapper-locations: classpath:/mybatis/*Dao.xml//指定xml文件位置,classpath代表resources目录下的文件
check-config-location: true
三.配置config
@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.example.dao*")//启动类中添加这句,扫描dao文件
public class BusApplication {
public static void main(String[] args) {
SpringApplication.run(BusApplication.class, args);
}
}
Dao文件使用@Mapper注解
以下可以测试了
首先是controller监听
@RestController
public class UserController {
@Autowired
private UserService service;
@RequestMapping("/getUser/{id}")
public User getUser(@PathVariable String id) {
return service.getUser(id);
}
}
service文件
@Service
public class UserService {
@Autowired
private UserDao dao;
public User getUser(String id) {
return dao.findById(id);
}
}
dao文件
@Mapper
public interface UserDao {
User findById(String id);
}
在xml文件中写findById方法
<?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.dao.UserDao">
<select id="findById" resultType="com.entity.User" >
select * from user
where id = #{id}
</select>
</mapper>
接下来就可以启动项目访问了
数据库数据
查询结果
到这,集成mybatis已经做好了,大家还有更多要学习的可以上官网查看资料
http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html
二 整合mybatis-plus
接着刚刚的操作,首先引入jar包
compile "com.baomidou:mybatis-plus-boot-starter:3.1.0"
接着配置application.yml文件
mybatis-plus:
mapper-locations: classpath:/mybatis/*Dao.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.entity
global-config:
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
id-type: 3
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
field-strategy: 2
#驼峰下划线转换
db-column-underline: true
logic-delete-value: 1
logic-not-delete-value: 0
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
接着创建MybatisPlusConfig文件,可以把刚刚启动类中加的MapperScan删除了
@Configuration
@MapperScan("com.example.dao*")//扫描文件
public class MybatisPlusConfig {
/*
* 分页插件,自动识别数据库类型
* 多租户,请参考官网【插件扩展】
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
配置完成,现在可以测试了
dao继承baseMapper
@Mapper
public interface UserDao extends BaseMapper<User>{
User findById(String id);
}
接着重新写userservice方法
@Service
public class UserService {
@Autowired
private UserDao dao;
public User getUser(String id) {
User u = new User();
u = dao.selectById(id);
return u;
}
}
运行程序,可以发现已经成功,少写了xml文件,是不是很方便
官方文档:https://mp.baomidou.com/guide/#特性