mybatisplus

一.分页查询

1.配置分页拦截器

package com.hxstrive.mybatis_plus;
 
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class MybatisPlusConfig {
 
    /**
     * 分页插件。如果你不配置,分页插件将不生效
     */
    @Bean
    public MybatisPlusInterceptor paginationInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 指定数据库方言为 MYSQL
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
 
}

2.mybatisplus表明映射可以在实体类中加

@TableName("user")

还有就是在配置文件中设置

mybatis-plus:
  global-config:
    db-config:
      #表名前缀
      #      table-prefix: tb_
      id-type: auto
      logic-delete-field: delFlag
      logic-delete-value: 1
      logic-not-delete-value: 0

3.id的自动增长可以在表的实体类中设置主键为

 @TableId(value = "id", type = IdType.AUTO)
    private Long id;

也可以在配置文件中设置id-type:auto

4.设置字段和列名称的驼峰映射在配置文件中,默认开启

#    map-underscore-to-camel-case: false

5.字段映射应该在实体类中加入注解@TableField("name")

@ApiModelProperty(value = "姓名")
@TableField("name")
private String name;

6.mp中的日志查询sql语句

configuration:
  log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

控制台打印

7.mp中中的deleteByMap()方法按照key为列名的条件,值为值进行删除

8.mybatis操作的mapper中的相关方法

在yml文件中配置mapper的文件的路径

#指定mapper文件的存放路径
mapper-locations: classpath*:/mapper/**/*.xml

条件构造器

User finduserByWrapper(@Param(Constants.WRAPPER) Wrapper<User> wrapper);

mappper文件的配置

<select id="finduserByWrapper" resultType="com.myself.entity.User">
    select *
    from user ${ew.customSqlSegment};
</select>

9.mybatisPlus分页查询

创建配置类配置mybatisplus的分页

@Configuration
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;

    }
}

10.自定义分页查询(多表查询)

定义接口,定义方法,如果要返回分页数据需要在方法中加入分页的对象

Page<Orders> Orderlist(Page<User> page);

11.自动填充字段

1.给自动填充的字段加上注解,标识以及表示我们在进行什么操作时进行自动填充

2.自定义填充器,例如:

@TableField(fill=FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;

@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    /**
     * 插入元对象字段填充(用于插入时对公共字段的填充)
     *
     * @param metaObject 元对象
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", LocalDateTime.now(), metaObject);
        this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
    }

    /**
     * 更新元对象字段填充(用于更新时对公共字段的填充)
     *
     * @param metaObject 元对象
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
    }
}

要将该配置类加入到spring容器中@Component

12.逻辑删除在mybatisplus3.3.0之前需要在相应的逻辑删除字段之前加上@TableLogic注解别且在yml配置文件中

      logic-delete-field: delFlag //逻辑删除字段
      logic-delete-value: 1 //删除为1
      logic-not-delete-value: 0  //未删除为0

版本3.3.0之后则可以不需要加注解

13.乐观锁的配置version

在相应的实体类加相应的字段,并在字段上加入相应的注解@version

配置乐观锁

///**
    // * 乐观锁的配置
    // * @return
    // */
    //@Bean
    //public MybatisPlusInterceptor OptimisticLockerInnerInterceptor() {
    //    MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
    //    mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
    //    return mybatisPlusInterceptor
    //}

14.@Accessors(chain=true)

这样就可以用链式访问,该注解设置为chain=true,生成setter方法返回this(也就是返回的是对象),代替了默认的返回void。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值