Spring Boot整合MyBatis
前言
新公司的新项目使用的是mybatis,以前的项目使用的是Hibernate,所以在网上找了一些关于Spring Boot和MyBatis组合的相关资料,总结后分享出来。
ORM框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,一个是宣称可以不用写一句SQL的Hibernate,一个是可以灵活调试动态sql的MyBatis。两者各有特点,在企业级系统开发中可以根据需求灵活使用。
整合MyBatis
添加依赖
新建一个项目,在pom.xml
中引入依赖
1 | <dependency> |
然后修改application.properties
中配置mysql的连接配置
1 | spring.datasource.url=jdbc:mysql://localhost:3306/test |
同其他Spring Boot工程一样,简单且简洁的的完成了基本配置,下面看看如何在这个基础下轻松方便的使用MyBatis访问数据库。
传统MyBatis使用方法
SQL
在Mysql中创建user表,包含id(bigint)、name(varchar)、age(int)字段。1
2
3
4
5
6CREATE TABLE `user` (
`id` bigint(8) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Entity
然后我们再创建映射对象User。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34@Table(name = "user")
public class User {
@Id
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
@Column(name = "age")
private int age;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Dao
这里的ProductDao 是传统的mybatis的用法。
1 | @Mapper |
mapper
传统mybatis 我们必须有个xml 文件和Dao 对应起来, tk.maybatis.mapper无需此文件。
1 | <mapper namespace="com.github.wz2cool.demo.tk.mybatis.mapper.ProductDao"> |
设置扫描包
1 | @SpringBootApplication |
application.properies
注意这里的配置只是针对我们传统mybatis配置,对于tk.maybatis.mapper可以省略这里的配置。
1 | mybatis.type-aliases-package=mapper |
测试
1 | @RunWith(SpringRunner.class) |
通过~这就是传统的mybatis的使用方法。那有没有更方便的呢?接下来我们了解下tk.mybatis.mapper。
tk.mybatis.mapper 用法
添加依赖
1 | <dependency> |
继承通用mapper
是的!你没有看错,没有xml文件!
1 | public interface TkUserDao extends Mapper<User> { |
测试
1 | @RunWith(SpringRunner.class) |
测试通过~通用mapper的基本用法就讲完了。
如果大家想深入研究通用mapper,可以去访问GitHub仓库 abel533/Mapper。
希望本篇文章对您所有帮助~