目录
- 前言
- 实践过程
- 一、pom配置
- 二、配置
- 三、实体类
- 四、配置好mapper和Service
- 测试
- 结论
前言
感觉Jpa的动态构建查询不好使用,然后myBATis-plus没有动态构建表的功能,有没有可能使两者混合使用,利用Jpa自动建表的优势 与 mybatis-plus lambda查询的优势 结合一下呢?
实践过程
一、pom配置
<dependencies> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-bootpython-starter</artifactId> <version>3.1.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-Java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <编程客栈;/dependency> </dependencies>
二、配置
pack编程age com.naruto.configuration;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
@Configuration
@MapperScan({"com.naruto.**.mapper*"})
public class MybatiesPlusConfig {
/**
* 开启mybatis-plus分页功能
* @return
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
application.yml配置
spring:
jpa:
database-platform: org.hibernate.dialect.MySQL5Dialect
show-sql: true
properties:
hibernate:
hbm2ddl:
auto: update
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springcloud?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false&nullCatalogMeansCurrent=true
username: root
password: 123456
mybatis-plus:
mapper-locations: classpath*:com/naruto/**/XML/*Mapper.xml
global-config:
# 关闭MP3.0自带的banner
banner: false
三、实体类
此处
Table TableName @Id @GeneratedValue(strategy=GenerationType.AUTO) @TableId(type = IdType.ID_WORKER_STR) 不可忽略
@Table(name="platform_table")
@TableName("platform_table")
@Entity
public class PlatformTableModel implements Serializable{
/**
*
*/
private static final long serialVersionUID = 4977394314428963032L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@TableId(type = IdType.ID_WORKER_STR)
private String id;
private String tableName;
private String tableVersion;
private String tableDescrition;
private jsString createBy;
private String createTime;
private String updateBy;
private String updateTime;
....
}
四、配置好mapper和Service
<?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="com.naruto.mapper.PlatformTableMapper"> </mapper>
package com.naruto.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.naruto.entity.PlatformTableModel;
public interface PlatformTableMapper extends BaseMapper<PlatformTableModel>{
}
package com.naruto.service; import com.baomidou.mybatisplus.exte开发者_C培训nsion.service.IService; import com.naruto.entity.PlatformTableModel; public interface IPlatformTableService extends IService<PlatformTableModel>{ }
package com.naruto.service.impl;
import org.springframework.stereotype.Service;
imphttp://www.devze.comort com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.naruto.entity.PlatformTableModel;
import com.naruto.mapper.PlatformTableMapper;
import com.naruto.service.IPlatformTableService;
@Service
public class PlatformTableServiceImpl extends ServiceImpl<PlatformTableMapper, PlatformTableModel> implements IPlatformTableService{
}
测试
1、启动
发现表已经自动建立好。

2、 测试插入 与 查询, 没有问题。
@RestController
@RequestMapping("table")
public class PlatformTableAction {
@Autowired
private IPlatformTableService platformTableService;
@GetMapping("get")
public List<PlatformTableModel> get() {
LambdaQueryWrapper<PlatformTableModel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlatformTableModel::getId, "1461159441186361345");
List<PlatformTableModel> platformTableModels = platformTableService.list(lambdaQueryWrapper);
return platformTableModels;
}
@PostMapping("save")
public Result save(@RequestBody PlatformTableModel platformTableModel) {
platformTableService.save(platformTableModel);
return new Result(platformTableModel);
}
}


结论
可以结合使用以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
加载中,请稍侯......
精彩评论