spring boot整合双持久层框架jpa、mybatis

时间:2023-03-09 13:11:44
spring boot整合双持久层框架jpa、mybatis

  公司之前用的是spring boot + jpa,但由于jpa无法完美的解决某些动态查询问题,就使用的jdbcTemplate 动态封装SQL,由于代码相对复杂,可读性差,现准备再引入mybatis。下面说一下整合过程中遇到的问题,以及所踩的坑。


为避免出现问题我们先准备一个干净的工程进行测试

选择web模块以及以下模块

spring boot整合双持久层框架jpa、mybatis

完整项目结构

spring boot整合双持久层框架jpa、mybatis

完整项目地址

https://github.com/tmlh98/springboot-jpa-mybatis.git

SQL文件

/*
SQLyog Ultimate v10.00 Beta1
MySQL - 8.0.12
*********************************************************************
*/
/*!40101 SET NAMES utf8 */; create table `employee` (
`id` int ,
`name` varchar ,
`age` int ,
`sex` varchar
);
insert into `employee` (`id`, `name`, `age`, `sex`) values('','张三','','男');
insert into `employee` (`id`, `name`, `age`, `sex`) values('','李四','','女');
insert into `employee` (`id`, `name`, `age`, `sex`) values('','王五','','男');
insert into `employee` (`id`, `name`, `age`, `sex`) values('','Aric','','男');

注意点:

整合两个持久层框架必须有两个dao层,否则程序无法做出正确的选择

spring boot整合双持久层框架jpa、mybatis

spring boot 版本问题

由于是直接在原来的项目上加入mybatis,就忽略了之前的版本,直接在pom文件中加入了pagehelper-spring-boot-starter,然后问题就来了,项目无法启动,无法创建相应的mapper类

回头看之前干净的项目,发现导入的spring boot 版本是1.5.16.RELEASE , 然后修正版本在测试,问题完美解决!