mybatis-plus與JPA混合的使用方式
前言
感覺Jpa的動態(tài)構(gòu)建查詢不好使用,然后mybatis-plus沒有動態(tài)構(gòu)建表的功能,有沒有可能使兩者混合使用,利用Jpa自動建表的優(yōu)勢 與 mybatis-plus lambda查詢的優(yōu)勢 結(jié)合一下呢?
實踐過程
一、pom配置
<dependencies> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-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>
二、配置
package 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:
# 關(guān)閉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 String 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.extension.service.IService;
import com.naruto.entity.PlatformTableModel;
public interface IPlatformTableService extends IService<PlatformTableModel>{
}package com.naruto.service.impl;
import org.springframework.stereotype.Service;
import 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、啟動
發(fā)現(xiàn)表已經(jīng)自動建立好。

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);
}
}


結(jié)論
可以結(jié)合使用以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot使用責(zé)任鏈模式優(yōu)化業(yè)務(wù)邏輯中的if-else代碼
在開發(fā)過程中,我們經(jīng)常會遇到需要根據(jù)不同的條件執(zhí)行不同的邏輯的情況,我們可以考慮使用責(zé)任鏈模式來優(yōu)化代碼結(jié)構(gòu),使得代碼更加清晰、可擴展和易于維護2023-06-06
SpringBoot整合quartz實現(xiàn)定時任務(wù)
這篇文章主要為大家詳細介紹了SpringBoot如何整合quartz實現(xiàn)定時任務(wù),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-10-10
Java實現(xiàn)將CSV轉(zhuǎn)為Excel的示例代碼
CSV(Comma?Separated?Values)文件是一種純文本文件,包含用逗號分隔的數(shù)據(jù),常用于將數(shù)據(jù)從一個應(yīng)用程序?qū)牖驅(qū)С龅搅硪粋€應(yīng)用程序。本文將利用Java實現(xiàn)CSV轉(zhuǎn)為Excel,感興趣的可以了解一下2022-03-03
java警告:源發(fā)行版17 需要目標發(fā)行版17問題及解決
文章介紹了如何解決項目JDK版本不一致的問題,包括修改Project Structure、Modules、Dependencies和Settings中的JDK版本,以及在pom.xml中指定JDK源版本2024-11-11
Spring?Boot項目如何優(yōu)雅實現(xiàn)Excel導(dǎo)入與導(dǎo)出功能
在我們平時工作中經(jīng)常會遇到要操作Excel的功能,比如導(dǎo)出個用戶信息或者訂單信息的Excel報表,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot項目中如何優(yōu)雅實現(xiàn)Excel導(dǎo)入與導(dǎo)出功能的相關(guān)資料,需要的朋友可以參考下2022-06-06

