关注公众号【肥超说技术】,回复【资源】,可获取200G+最新微服务、docker技术资源等。
spring-boot-mybatis-plus
pom.xml
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
application.yml
mybatis-plus:
mapper-locations: classpath:mappers/*.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.xkcoding.orm.mybatis.plus.entity
global-config:
# 数据库相关配置
db-config:
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
id-type: auto
#字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"
field-strategy: not_empty
#驼峰下划线转换
table-underline: true
#是否开启大写命名,默认不开启
#capital-mode: true
#逻辑删除配置
#logic-delete-value: 1
#logic-not-delete-value: 0
db-type: mysql
#刷新mapper 调试神器
refresh: true
# 原生配置
configuration:
map-underscore-to-camel-case: true
cache-enabled: true
UserMapper.java
/**
* <p>
* UserMapper
* </p>
*
* @description: UserMapper
* @copyright: Copyright (c) 2020
* @version: V1.0
*/
@Component
public interface UserMapper extends BaseMapper<User> {
}
UserService.java
/**
* <p>
* User Service
* </p>
* @description: User Service
* @copyright: Copyright (c) 2020
* @version: V1.0
*/
public interface UserService extends IService<User> {
}
BaseMapper和IService中的方法基本相似,用法也基本相同。
MybatisPlusConfig
/**
* <p>
* mybatis-plus 配置
* </p>
* @description: mybatis-plus 配置
* @date: Created in 2018/11/8 17:29
* @version: V1.0
*/
@Configuration
public class MybatisPlusConfig {
/**
* 性能分析拦截器,不建议生产使用
*/
@Bean
public PerformanceInterceptor performanceInterceptor(){
return new PerformanceInterceptor();
}
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
CommonFieldHandler
package com.xkcoding.orm.mybatis.plus.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* <p>
* 通用字段填充
* </p>
* @description: 通用字段填充
*/
@Slf4j
@Component
public class CommonFieldHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
//新增的时候 自动往数据库里新增创建时间,和最后一次更改时间,可字定义,但是数据库没有此字段新增会报错
log.info("start insert fill ....");
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("lastUpdateTime", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill ....");
this.setFieldValByName("lastUpdateTime", new Date(), metaObject);
}
}
使用案例
User byIdService = userService.getById("Id");
User byIdMapper = userMapper.selectById("Id");
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
userQueryWrapper.eq("email","**@163.com");
userService.list(userQueryWrapper);
userMapper.selectList(userQueryWrapper);
Page<User> page = new Page<>(1,1);
userService.page(page,userQueryWrapper);
userMapper.selectPage(page,userQueryWrapper);
userService.remove(userQueryWrapper);
userMapper.delete(userQueryWrapper);