mybatis-plus与JPA混合的使用方式

 更新时间:2023年03月30日 14:29:37   作者:K歌、之王  
这篇文章主要介绍了mybatis-plus与JPA混合的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

前言

感觉Jpa的动态构建查询不好使用,然后mybatis-plus没有动态构建表的功能,有没有可能使两者混合使用,利用Jpa自动建表的优势 与 mybatis-plus lambda查询的优势 结合一下呢?

实践过程

一、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:
    # 关闭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、启动

发现表已经自动建立好。

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

结论

可以结合使用以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringMVC表单提交参数400错误解决方案

    SpringMVC表单提交参数400错误解决方案

    这篇文章主要介绍了SpringMVC表单提交参数400错误解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • SpringBoot使用责任链模式优化业务逻辑中的if-else代码

    SpringBoot使用责任链模式优化业务逻辑中的if-else代码

    在开发过程中,我们经常会遇到需要根据不同的条件执行不同的逻辑的情况,我们可以考虑使用责任链模式来优化代码结构,使得代码更加清晰、可扩展和易于维护
    2023-06-06
  • Java实现手写线程池的示例代码

    Java实现手写线程池的示例代码

    在我们的日常的编程当中,并发是始终离不开的主题,而在并发多线程当中,线程池又是一个不可规避的问题。本文就来分享一下如何自己手写一个线程池,需要的可以参考一下
    2022-08-08
  • SpringBoot整合quartz实现定时任务

    SpringBoot整合quartz实现定时任务

    这篇文章主要为大家详细介绍了SpringBoot如何整合quartz实现定时任务,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10
  • Java实现将CSV转为Excel的示例代码

    Java实现将CSV转为Excel的示例代码

    CSV(Comma Separated Values)文件是一种纯文本文件,包含用逗号分隔的数据,常用于将数据从一个应用程序导入或导出到另一个应用程序。本文将利用Java实现CSV转为Excel,感兴趣的可以了解一下
    2022-03-03
  • java警告:源发行版17 需要目标发行版17问题及解决

    java警告:源发行版17 需要目标发行版17问题及解决

    文章介绍了如何解决项目JDK版本不一致的问题,包括修改Project Structure、Modules、Dependencies和Settings中的JDK版本,以及在pom.xml中指定JDK源版本
    2024-11-11
  • Java如何在PDF中添加ToolTip工具提示

    Java如何在PDF中添加ToolTip工具提示

    大家好,本篇文章主要讲的是Java如何在PDF中添加ToolTip工具提示,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 关于BufferedReader的读取效率问题

    关于BufferedReader的读取效率问题

    这篇文章主要介绍了关于BufferedReader的读取效率问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 详解Java 本地接口 JNI 使用方法

    详解Java 本地接口 JNI 使用方法

    这篇文章主要介绍了详解Java 本地接口 JNI 使用方法的相关资料,希望通过本文大家能彻底使用JNI编程,需要的朋友可以参考下
    2017-09-09
  • Spring Boot项目如何优雅实现Excel导入与导出功能

    Spring Boot项目如何优雅实现Excel导入与导出功能

    在我们平时工作中经常会遇到要操作Excel的功能,比如导出个用户信息或者订单信息的Excel报表,下面这篇文章主要给大家介绍了关于Spring Boot项目中如何优雅实现Excel导入与导出功能的相关资料,需要的朋友可以参考下
    2022-06-06

最新评论