mybatis-plus 简单使用
依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.angen</groupId>
<artifactId>mp_test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mp_test</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--mabatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--mp-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<!--引入druid数据源-->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
配置
server:
port: 8081
#解决乱码
http:
encoding:
charset: UTF-8
force: true
enabled: true
messages:
encoding: UTF-8
banner:
charset: UTF-8
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/test_mybatis?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
# 8以上的驱动url 需要加上时区serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
#自动往数据库建表
# schema:
# - classpath:department.sql
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
mvc:
pathmatch:
matching-strategy: ant_path_matcher
#mybatis配置
#mapper-locations: classpath:mapper/UserMapper.xml指定加载这个文件
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.angen.entity
#mybatis-plus
mybatis-plus:
configuration:
#关闭实体类成员属性必须用驼峰命名
map-underscore-to-camel-case: false
#开启输出sql语句
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#设置mybatis_plus的全局配置
global-config:
db-config:
#设置表前缀
table-prefix: t_
#配置统一主键生成策略 auto自动递增
id-type: auto
扫描mapper接口
@SpringBootApplication
@MapperScan("com.angen.mapper")
public class MpTestApplication {
public static void main(String[] args) {
SpringApplication.run(MpTestApplication.class, args);
}
}
实体类上加上
@TableName("表名")
在mapper层使用mybatis-plus
package com.angen.mapper;
import com.angen.entity.GameBigcate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 继承BaseMapper<T>
* 泛型是我们的实体类
* */
@Repository
public interface CateMapper extends BaseMapper<GameBigcate> {
}
service层使用我们的mybatis-plus
package com.angen.service;
import com.angen.entity.GameBigcate;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 继承IService
* 泛型就是对应的实体类
*/
public interface CateService extends IService<GameBigcate> {
}
然后我们要创建对应的实现类
package com.angen.service.impl;
import com.angen.entity.GameBigcate;
import com.angen.mapper.CateMapper;
import com.angen.service.CateService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* 首先实现自己的CateService接口
* 然后由于CateService接口继承了IService<GameBigcate>
* 所以我们需要重写IService里面的一些方法
* 但是mybatis-plus给我们提供了ServiceImpl<CateMapper, GameBigcate>
* 泛型第一个参数是对应的mapper,第二个参数是实体类
*/
@Service
public class CateServiceImpl extends ServiceImpl<CateMapper, GameBigcate> implements CateService {
}
这样我们可以使用通用的mybatis-plus里面的功能,又可以在service实现类中自定义我们自己的功能。
条件构造器
mybatis-plus中wrapper的用法(详细)_乞力马扎罗の黎明的博客-CSDN博客_wrapper.apply