前面一篇提到了SpringBoot整合基础的数据源JDBC、Druid操作,实际项目中更常用的还是MyBatis框架,而SpringBoot整合MyBatis进行CRUD也非常方便。
下面从配置模式、注解模式、混合模式三个方面进行说明MyBatis与SpringBoot的整合。
1.1.配置模式
MyBatis配置模式是指使用mybatis配置文件的方式与SpringBoot进行整合,相对应的就有mybatis-config.xml(用于配置驼峰命名,也可以省略这个文件)、XxxMapper.xml文件。
主要步骤为:
导入mybatis官方starter
编写mapper接口。标准@Mapper注解
编写sql映射文件并绑定mapper接口
在application.yaml中指定Mapper配置文件的位置,以及指定全局配置文件的信息 (建议;配置在mybatis.configuration中,可以省略mybatis-config.xml文件)
下面是具体整合配置步骤:
①引入相关依赖pom.xml配置:
pom.xml
View Code
②编写对应Mapper接口:
复制代码
@Mapper //这个注解表示了这个类是一个mybatis的mapper接口类
@Repository
public interface UserMapper {
//@Select(“select * from user”)
List findAllUsers();
//@Insert("insert into user(id, username, password) values (#{id}, #{username}, #{password})")
void insert(User user);
//@Update("update user set username = #{username}, password = #{password} where id = #{id}")
void update(User user);
//@Delete("delete from user where id = #{id}")
void deleteById(Integer id);
}
复制代码
③在resources下创建对应的mapper文件,对应domain类,数据库表单如下:
User类:
复制代码
@Data
public class User {
private Integer id;
private String username;
private String password;
}
复制代码
数据库user表:
UserMapper.xml文件:
复制代码
<?xml version="1.0" encoding="UTF-8" ?> select * from user<insert id="insert" parameterType="com.fengye.springboot_mybatis.entity.User">
insert into user(id, username, password) values (#{id}, #{username}, #{password})
</insert>
<update id="update" parameterType="com.fengye.springboot_mybatis.entity.User">
update user set username = #{username}, password = #{password} where id = #{id}
</update>
<delete id="deleteById" parameterType="Integer">
delete from user where id = #{id}
</delete>
复制代码
④对应配置application.yml文件:
application.yml
复制代码
server:
port: 8083
spring:
datasource:
username: root
password: admin
#假如时区报错,增加时区配置serverTimezone=UTC
url: jdbc:mysql://localhost:3306/mybatis02_0322?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
#config-location: classpath:mybatis/mybatis-config.xml 使用了configuration注解则无需再指定mybatis-config.xml文件
mapper-locations: classpath:mybatis/mapper/*.xml
configuration: #指定mybatis全局配置文件中的相关配置项
map-underscore-to-camel-case: true
复制代码
1.2.注解模式
注解模式使用
主要步骤:
导入mybatis官方依赖
注解方式编写mapper接口
在application.yaml中指定Mapper配置文件的位置,以及指定全局配置文件的信息
可以看到注解模式比配置模式少了编写Mapper.xml文件,简化了简单SQL语句的xml文件编写。
下面是具体整合步骤:
①创建测试表单city,对应domain类:
建表sql:
复制代码
CREATE TABLE city
(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(30),
state VARCHAR(30),
country VARCHAR(30)
);
复制代码
City类:
复制代码
@Data
public class City {
private Long id;
private String name;
private String state;
private String country;
}
复制代码
②导入pom.xml与配置模式相同,编写注解式CityMapper接口:
复制代码
@Mapper
@Repository
public interface CityMapper {
@Select(“select * from city where id = #{id}”)
public City getCityById(Long id);
/**
* 使用@Options来增加除Insert语句中其它可选参数,比如插入获取id主键的值
* @param cit