准备工作
- 查看mybatis-spring-boot-starter启动器官方文档
http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
- 导入SpringBoot整合Mybatis所需要的依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
- 配置数据库连接信息不变,使用Druid数据源
#配置springboot数据源和数据库驱动
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis_zr?serverTimezone=PRC&useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
password: root
username: root
#切换数据源
type: com.alibaba.druid.pool.DruidDataSource
#Spring Boot 默认是不注入这些属性值的,需要自己绑定
#druid 数据源专有配置
druid:
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority
#则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
server:
port: 80
-
测试数据库连接是否成功
-
创建实体类 ,使用Lombok插件
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String username;
private String password;
private Integer gender;
private Date regist_time;
}
如果没有使用@Mapper注解标准Mapper接口类,则要在使用的类上加上注解@MapperScan注解进行扫描包下的Mapper接口
- 创建mapper目录以及对应的 Mapper 接口
//@Mapper : 表示本类是一个MyBatis的Mapper
@Mapper
@Repository
public interface UserMapper {
//查询所有数据信息
List<User> queryList();
//根据id查询数据
User queryById(@Param("id") int id);
//添加一条数据
int add(User user);
//更新一条数据
int update(User user);
//根据id删除一条数据
int delete(@Param("id") int id);
}
- 对应的Mapper映射文件,UserMapper.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接口-->
<mapper namespace="com.chenhui.mapper.UserMapper">
<!--查询所有的数据-->
<select id="queryList" resultType="user">
select * from t_user
</select>
<!--根据id查询一条数据-->
<select id="queryById" resultType="user">
select * from t_user where id = #{id}
</select>
<!--插入一条数据-->
<insert id="add" parameterType="user">
insert into t_user (username,password,gender,regist_time)
values(#{username},#{password},#{gender},#{regist_time})
</insert>
<!-- 更新一条数据-->
<update id="update" parameterType="user">
update t_user set username=#{username},password=#{password},gender=#{gender},
regist_time=#{regist_time} where id=#{id}
</update>
<!-- 删除一条数据-->
<delete id="delete" parameterType="_int">
delete from t_user where id =#{id}
</delete>
</mapper>
- 配置一些Mybatis的配置信息
#配置Mybatis一些配置,例如mapper.xml文件路径位置,以及实体类的别名
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.chenhui.pojo
- 编写controller类进行测试
@RestController
public class TestController {
//注入UserMapper对象进行增删改查操作
@Autowired
UserMapper userMapper;
@RequestMapping("/query")
public List<User> query() {
//测试查询所有数据
List<User> users = userMapper.queryList();
return users;
}
@RequestMapping("/queryById")
public User queryById() {
//根据id查询一条数据
User user = userMapper.queryById(8);
return user;
}
@RequestMapping("/add")
public int add() {
//添加一条数据
int result = userMapper.add(new User(null, "hhh", "789", 1, new Date()));
return result;
}
@RequestMapping("/update")
public int update() {
//添加一条数据
int result = userMapper.update(new User(15,"ch","8888",0,new Date()));
return result;
}
@RequestMapping("/delete")
public int delete() {
//添加一条数据
int result = userMapper.delete(15);
return result;
}
}
- 启动项目测试成功即可!