首页 > 其他分享 >mybatis plus所需配置

mybatis plus所需配置

时间:2023-08-12 21:24:42浏览次数:45  
标签:所需 metaObject TableField private Date plus mybatis import public

  • yml配置
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl   # 日志
  mapper-locations: classpath:mapper/*.xml  # 映射
  type-enums-package: com.dxc.zeno.enums    # 枚举类
  • 配置类
@Configuration
@MapperScan("com.dxc.zone.mapper")
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 分页插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        // 乐观锁插件
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }

}
  • 填充器
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;

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "deleted", Integer.class, 0);
        this.strictInsertFill(metaObject, "version", Integer.class, 0);
        this.setFieldValByName("created",new Date(),metaObject);
        this.setFieldValByName("updated",new Date(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updated",new Date(),metaObject);
    }

}
  • 实体类
@Data    // 生成getter和setter方法
@AllArgsConstructor    // 有参构造器
@NoArgsConstructor    // 无参构造器
@ToString    // toString方法
@Accessors(chain = true)
@TableName("user")    // 指定表名称
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    // 标注在id属性上,用于映射数据库中的id
    @TableId(value="id")
    private int id;

    @TableField(value = "created", fill = FieldFill.INSERT)
    private Date created;

    @TableField(value = "updated", fill = FieldFill.INSERT_UPDATE)
    private Date updated;

    @TableField(value = "deleted", fill = FieldFill.INSERT)
    @TableLogic
    private Integer deleted;

    @TableField(value = "version", fill = FieldFill.INSERT)
    @Version
    private Integer version;

    // 标注在属性上,用于映射数据库中的属性
    @TableField(value="bir")
    private Date birthday;

    //标注在属性上,表示该属性在数据库中不存在,则不会映射
    @TableField(exist = false)  
    private String userName;

}
  • 枚举类
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;

@Getter
public enum SexEnum {

    MALE(1, "男"),
    FEMALE(2, "女");

    @EnumValue
    private Integer sex;
    private String sexName;

    SexEnum(Integer sex, String sexName) {
        this.sex = sex;
        this.sexName = sexName;
    }

}

标签:所需,metaObject,TableField,private,Date,plus,mybatis,import,public
From: https://www.cnblogs.com/dogleftover/p/17625539.html

相关文章

  • 第一个Mybatis程序
    1、首先创建一个数据库CREATEDATABASEmybatis;CREATETABLE`user`(`id`INT(20)NOTNULLPRIMARYKEY,`name`VARCHAR(30)NOTNULL,`pwd`VARCHAR(30)NOTNULL)ENGINE=INNODBDEFAULTCHARSET=utf8;INSERTINTO`user`(`id`,`name`,`pwd`)VALUES(1,'张三'......
  • Mybatis如何添加映射接口和映射文件?
    Mybatis是一种半ORM框架,需要我们手动编写SQL语句。在启动时,它会将SQL语句等信息读取到内存中,便于操作数据库时进行参数解析、执行SQL和结果封装。使用过Mybatis的都知道,它有两种方式编写SQL语句:xml映射文件映射接口方法上的注解在启动Mybatis时,可以通过Configuration的addM......
  • Mybatis简介
    1.1、Mybatis简介●MyBatis是一款优秀的持久层框架●它支持定制化SQL、存储过程以及高级映射。●MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。●MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POjO(PlainOldJavaObjects,普通老式Java......
  • MyBatis 实例
    MyBatis简介MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java......
  • 统一门户|WorkPlus整合内部应用,构筑企业统一的智能工作入口
    国家“十四五”发展规划中指出加强数字化发展,支持企业建设一体化数字平台,全面整合企业内部系统,提升产业链上下游协同效率。而在数字化经济浪潮下,企业和各类组织随着业务规模、人员规模的不断扩大,在信息化办公中存在不少弊端:·系统入口不统一,员工需要记多套账号密码,多个系统来回切......
  • 数据安全是企业发展之基,WorkPlus纯内网私有化部署保护隐私更安全
    数字化时代,数据是企业生产、经营、战略等几乎所有经营活动所依赖、不可或缺的信息。企业通过数据资产管理,对外可以为客户提供更好的产品和服务,在组织内部又可以降低成本、提高效率、控制风险。所以,数据的价值和重要性不言而喻,而一旦出现数据安全风险事故,影响往往会波及全行业,严重者......
  • ruoyicloud从mybatis升级至mybatis-plus
     "error:cannotexecute.becausecannotfindcacheofTableInfoforentity!"mybatis-plus框架TABLE_INFO_CACHE获取不到对应的TableInfo对象https://blog.csdn.net/weixin_45525272/article/details/123694959 注意在yml配置中增加相关配置 #MyBatis-plus配置......
  • MyBatis-Plus批量插入方法saveBatch
    1.saveBatch能否提高插入的效率?先说结论,saveBatch()方法也是一条一条的插入,也就是说它会产生多条insert语句,而不是一条insert语句,所以它不是真正的批量插入,更不能提高插入效率。看看代码就全明白了从代码看,循环一条一条的插入,每次都是一个sqlSession.insert()因此,saveBatch......
  • MybatisPlus备忘录
    getOne时多条报错问题日常使用可能大多数用的是第一种,当多条就会报错,当我们不希望他报错且能返回一条数据时,可以使用第二、三种方法。当然第二种方法内部也就是第三种方法的逻辑1.tempManager.getOne(Wrappers.<TempDO>query().lambda());2.tempManager.getOne(Wrappers.<T......
  • mybatis缓存
    一级缓存一级缓存是同一session内缓存,随着session的关闭而被清除。先看下效果Stringresource="mybatis-config.xml";SqlSessionFactorysessionFactory=newSqlSessionFactoryBuilder().build(Resources.getResourceAsStream(resource));SqlSes......