Springboot整合Mybatis-plus實戰

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章