springboot快速集成mybatis-plus的详细教程
作者:子_轩 发布时间:2021-06-11 22:05:16
标签:springboot,mybatis-plus
简介Mybatis-Plus(简称MP)
是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA。
springBoot快速集成mybatis-plus
一、pom文件引入mybatis-plus依赖
<dependencies>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
<!---test-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
注:
这里最主要的是mybatis-plus-boot-starter依赖,其他依赖都是基本的
二、基础配置 application.properties
#mysql数据库
spring.datasource.url= jdbc:mysql://127.0.0.1:3306/springbootdemo?characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.username= root
spring.datasource.password= 111111
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis
#开启驼峰
mybatis.configuration.map-underscore-to-camel-case=true
#打印日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#mybatis-plus配置
mybatis-plus.mapper-locations=classpath*:/mappers/*.xml
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
mybatis-plus.global-config.id-type=0
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
mybatis-plus.global-config.field-strategy= 1
#驼峰下划线转换
mybatis-plus.global-config.db-column-underline=true
三、MybatisPlusConfig
/**
* MybatisPlus配置类
*/
@EnableTransactionManagement
@Configuration
@MapperScan(basePackages = "com.example.demo.mapper")
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
四、测试
实体类 主键使用@TableId(value = "id",type = IdType.AUTO)
指定类型@TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的。
@Data
public class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 创建时间
*/
private Date createDate;
/**
* 更新时间
*/
private Date updateDate;
/**
* sys_user
*/
}
新建SysUserMapper继承 BaseMapper
public interface SysUserMapper extends BaseMapper<SysUser> {
}
测试
@Autowired
private SysUserMapper sysUserMapper;
/**
* 插入
*/
@Test
public void insert() {
SysUser sysUser=new SysUser();
sysUser.setPhone("18787878787");
sysUser.setPassword("123456");
sysUser.setUsername("root");
sysUser.setCreateDate(new Date());
sysUser.setUpdateDate(new Date());
sysUserMapper.insert(sysUser);
}
/**
* 分页查询
*/
@Test
public void selectByPage() {
Page<SysUser> page=new Page(1,1);
IPage p= sysUserMapper.selectPage(page,new QueryWrapper<SysUser>().eq("password","123456"));
System.out.println(p.getRecords());
}
分页一般使用
List<ApiLogVO> getCallLogList(ApiLogDTO dto, Page page); mapper
IPage<ApiLogVO> getCallLogList(ApiLogDTO dto); IService
serviceImpl
@Override
public IPage<ApiLogVO> getCallLogList(ApiLogDTO dto) {
Page<ApiLogVO> page=new Page(dto.getCurrent(),dto.getSize());
List<ApiLogVO>list= apiLogMapper.getCallLogList(dto,page);
page.setRecords(list);
return page;
}
controller
@PostMapping("/call/log")
@ApiOperation("api调用日志列表")
public IPage<ApiLogVO> callLog(@ModelAttribute ApiLogDTO dto){
return sysService.getCallLogList(dto);
}
附上目录结构
来源:https://blog.csdn.net/qq_37209293/article/details/93617460


猜你喜欢
- 今天去某在线教育面试面试官让做的一道题,题目描述如下:给定一个不重复的无序数组arr和一个定值num查找arr中是否有两个数的和等于num有
- Java-Web获取客户端真实IP:发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限
- 一、代理模式代理模式的英文叫做Proxy或Surrogate,中文都可译为”代理“,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机
- Android Studio卡很久(loading)的问题关于Android Studio卡在某个地方很久(更准确说应该是Loading很久
- 本文实例为大家分享了Android仿QQ讨论组头像展示的具体代码,供大家参考,具体内容如下一、效果图二、实现基本实现过程:1.将原图片读取为
- 演示代码: MenuExamples.java package swt_jface.demo5; import org.eclipse.sw
- 在使用多线程过程中,可能会遇到在一些情况下必须等待子线程全部执行结束后主线程才进行下一步,做法如下: //在使用多线程过程中,可能会遇到在一
- 在源代码中设置断点,然后进行点击调试若要启用反汇编窗口,请在工具>选项(或工具> 选项>调试下,选择启用地址级调试。若要在
- 1.为什么需要动态内存分配关于这个问题,我们先看看我们之前是如何开辟内存的。int val = 20;//在栈空间上开辟四个字节char a
- 概述Spring boot 中的 @Conditional 注解是一个不太常用到的注解,但确实非常的有用,我们知道 Spring Boot
- 一、概述1、事务ACID特性事务将一系列的工作视为一个工作单元,它具有 ACID 特性:A:Atomicity 不可分性 也就是说
- 前言:项目是c#的winform 写的,使用的播放器是基于AxWindowsMediaPlayer。AxWindowsMediaPlayer
- 限流背景在早期的计算机领域,限流技术(time limiting)被用做控制网络接口收发通信数据的速率。可以用来优化性能,减少延迟和提高带宽
- Java 异常的栈轨迹(Stack Trace)详解 捕获到异常时,往往需要进行一些处理。比较简单直接的
- openid可以标识一个用户,session_key会变,所以来获取一下openid。openid不能在微信小程序中直接获取,需要后台发送请
- 一、前言:垃圾回收:在未来的JDK中可能G1会为ZGC所取代先问自己几个问题:什么是垃圾?垃圾就是堆内存中(范指)没有任何指针指向的对象实体
- Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使
- 前言这几天学习谷粒商城又再次的回顾了一次SpringCache,之前在学习谷粒学院的时候其实已经学习了一次了!!!这里就对自己学过来的内容进
- 具体实现方式不多说了,请看下文一、前言当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,
- 本文实例讲述了Java使用Math.random()结合蒙特卡洛方法计算pi值。分享给大家供大家参考,具体如下:一、概述蒙特·卡罗方法(Mo