mybatis-plus與JPA混合的使用方式
前言
感覺(jué)Jpa的動(dòng)態(tài)構(gòu)建查詢不好使用,然后mybatis-plus沒(méi)有動(dòng)態(tài)構(gòu)建表的功能,有沒(méi)有可能使兩者混合使用,利用Jpa自動(dòng)建表的優(yōu)勢(shì) 與 mybatis-plus lambda查詢的優(yōu)勢(shì) 結(jié)合一下呢?
實(shí)踐過(guò)程
一、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 { /** * 開(kāi)啟mybatis-plus分頁(yè)功能 * @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
三、實(shí)體類
此處
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{ }
測(cè)試
1、啟動(dòng)
發(fā)現(xiàn)表已經(jīng)自動(dòng)建立好。
2、 測(cè)試插入 與 查詢, 沒(méi)有問(wèn)題。
@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é)合使用以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring的事件和監(jiān)聽(tīng)器-同步與異步詳解
這篇文章主要介紹了Spring的事件和監(jiān)聽(tīng)器-同步與異步詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟記錄
這篇文章主要給大家介紹了關(guān)于使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟,Spring?MVC是一種基于MVC模式的框架,它是Spring框架的一部分,它提供了一種更簡(jiǎn)單和更有效的方式來(lái)構(gòu)建Web應(yīng)用程序,需要的朋友可以參考下2024-05-05解析Java程序中對(duì)象內(nèi)存的分配和控制的基本方法
這篇文章主要介紹了解析Java程序中對(duì)象內(nèi)存的分配和控制的基本方法,包括計(jì)算對(duì)象的內(nèi)存占用的方法,要的朋友可以參考下2016-04-04Jax-rs規(guī)范REST接口文件上傳代碼實(shí)例
這篇文章主要介紹了Jax-rs規(guī)范REST接口文件上傳代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java的validation參數(shù)校驗(yàn)代碼實(shí)例
這篇文章主要介紹了Java的validation參數(shù)校驗(yàn)代碼實(shí)例,Validation參數(shù)校驗(yàn)是指在程序運(yùn)行中對(duì)傳進(jìn)來(lái)的參數(shù)進(jìn)行合法性檢查,以保證程序的正確性和安全性,需要的朋友可以參考下2023-10-10