關注公衆號【肥超說技術】,回覆【資源】,可獲取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);