整合MyBatis
在SpringBoot中使用MyBatis(不是注解版,属于配置文件版)
其中很多的步骤是和单独使用Mybatis很像,这里的话数据源使用Druid,前面一章介绍了如何使用,然后持久层框架就是Mybatis;
1. 首先是像使用Mybatis一样
创建一个接口,用于对数据库进行处理;
@Mapper//指定接口是一个操作数据库的端口;
@Component
public interface DepartmentMapper {
Department getDepartName(Integer id);
Integer insertDepartName(Department department);
}
第二步创建一个上面接口的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 namespace="cn.dxs.mybatis.mapper.DepartmentMapper">
<select id="getDepartName" parameterType="Integer" resultType="department">
select * from department where id=#{id}
</select>
<delete id="deleteDepartment" parameterType="Integer">
delete from department where id=#{id}
</delete>
<insert id="insertDepartName" parameterType="cn.dxs.mybatis.bean.Department">
insert into department(id,departmentName) value(#{id},#{departmentName})
</insert>
</mapper>
这种类型的映射文件,一般开头那些东西在官方文档都是可以查到的,如果需要写这些文件可以直接复制过来;
在映射文件里面的那些东西,学习MyBatis的时候就已经学习过了,不在过多赘述;
2. 对MyBatis核心配置和映射文件进行设置
在以前学习MyBatis的时候,就知道要在其中设置好核心配置,并对映射文件进行扫描(毕竟你要知道哪些是映射文件),这里也是一样的;
在资源(resource)目录下,创建一个文件夹专门进行MyBatis配置(可以设置成如下结构);
然后就是在配置文件中进行配置(由于不是主要介绍MyBatis,相对的配置可能介绍的少点,需要详细了解可以去看官方文档
);
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="cn.dxs.mybatis.bean.Department" alias="department"/>
</typeAliases>
<mappers>
<mapper resource="mybatis/mapper/DepartmentMapper.xml"/>
</mappers>
</configuration>
本来里面还有更多的配置,比如settings,这个官方文档配置很详细; 当然除了在MyBatis核心文件里面配置,也可以在SpringBoot的核心文件
里面配置;
一般与Mybatis相关的配置,开头都是mybatis,具体一点的如下(想知道具体哪些配置可以查看类MybatisProperties
):
mybatis:
#配置核心配置文件的位置;
config-location: classpath:mybatis/mapperConfig.xml
#配置映射文件的位置;
mapper-locations: classpath:mybatis/mapper/*.xml
当然这里配置的数据源还是Druid,但是由于上一节已经介绍了如何进行Druid相关的配置,这里不再重复记录;
spring:
datasource:
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC
type: com.alibaba.druid.pool.DruidDataSource
druid:
#配置过滤器
web-stat-filter:
enabled=: true
url-pattern=: /*
stat-view-servlet:
#下面是一个对访问等数据进行管理的平台
enabled=: true
login-username: andmin
login-password: 123456
3. 将上面所有的步骤全部解决之后就能进行测试了
这里只是测试能不能够进行简单的增删改查,如果可以,基本上连接也不存在太大的问题;
@RestController
@RequestMapping("/depaercontrol")
public class DepartControl {
@Autowired
DepartmentMapper departmentMapper;
@GetMapping("/dept/{id}")
public Department getdepartment(@PathVariable("id") Integer id) {
return departmentMapper.getDepartName(id);
}
@GetMapping("/dept")
public int insertdepartment(Department department) {
Integer i = departmentMapper.insertDepartName(department);
return i;
}
}
测试结果没有问题:
上面就是SpringBoot2.3.4对MyBatis进行的整合;