网站推广的措施有哪些,百度网盘搜索入口,合肥市住房和建设局网站,软件开发外包工作室精心整理了最新的面试资料和简历模板#xff0c;有需要的可以自行获取
点击前往百度网盘获取 点击前往夸克网盘获取 MyBatis-Plus 注解大全
MyBatis-Plus 是基于 MyBatis 的增强工具#xff0c;通过注解简化了单表 CRUD 操作和复杂查询的配置。以下是常用注解的分类及详细说…精心整理了最新的面试资料和简历模板有需要的可以自行获取
点击前往百度网盘获取 点击前往夸克网盘获取 MyBatis-Plus 注解大全
MyBatis-Plus 是基于 MyBatis 的增强工具通过注解简化了单表 CRUD 操作和复杂查询的配置。以下是常用注解的分类及详细说明 一、核心注解
1. TableName
作用标识实体类对应的数据库表名当类名与表名不一致时使用。属性 value数据库表名默认空使用类名驼峰转下划线形式。schema数据库 schema可选。 示例TableName(sys_user)
public class User {// ...
}2. TableId
作用标识实体类的主键字段。属性 value数据库主键字段名默认空使用字段名驼峰转下划线形式。type主键生成策略默认为 IdType.NONE可选值 AUTO数据库自增。NONE无策略手动输入。INPUT用户输入。ASSIGN_ID雪花算法生成 Long 类型 ID。ASSIGN_UUID生成 UUID 字符串。 示例public class User {TableId(value id, type IdType.ASSIGN_ID)private Long userId;
}3. TableField
作用标识非主键字段与数据库列的映射关系。属性 value数据库字段名默认空使用字段名驼峰转下划线形式。exist是否为数据库表字段默认 true若为 false 表示不参与 SQL 操作。fill字段自动填充策略如插入或更新时自动填充值可选值 FieldFill.DEFAULT不处理。FieldFill.INSERT插入时填充。FieldFill.UPDATE更新时填充。FieldFill.INSERT_UPDATE插入和更新时填充。 select是否参与查询默认 true。 示例public class User {TableField(value create_time, fill FieldFill.INSERT)private LocalDateTime createTime;TableField(exist false)private String remark; // 非数据库字段
}二、条件构造注解
4. Param
作用在 Mapper 接口方法中定义参数别名用于 XML 或注解中的 SQL 绑定非 MyBatis-Plus 特有但常用。示例ListUser selectByName(Param(name) String name);三、结果映射注解
5. TableLogic
作用标识逻辑删除字段标记记录是否被删除。属性 value未删除时的值默认 0。delval删除后的值默认 1。 示例TableLogic(value 0, delval 1)
private Integer isDeleted;四、其他功能注解
6. Version
作用标识乐观锁版本号字段用于并发控制。示例Version
private Integer version;7. EnumValue
作用标识枚举类中与数据库存储值对应的字段。示例public enum GenderEnum {MALE(1, 男),FEMALE(2, 女);EnumValueprivate final Integer code;private final String desc;
}8. KeySequence
作用指定主键序列名称适用于 Oracle、PostgreSQL 等数据库的序列主键。属性 value序列名。clazz主键类型如 Long.class。 示例KeySequence(value SEQ_USER, clazz Long.class)
public class User {// ...
}9. InterceptorIgnore
作用忽略特定拦截器如多租户插件、动态表名插件等。属性 tenantLine是否忽略多租户拦截默认 false。dynamicTableName是否忽略动态表名拦截。 示例InterceptorIgnore(tenantLine true)
ListUser selectAll();五、自动填充配置
通过 TableField(fill FieldFill.xxx) 结合 MetaObjectHandler 实现字段自动填充 定义处理器 Component
public class MyMetaObjectHandler implements MetaObjectHandler {Overridepublic void insertFill(MetaObject metaObject) {this.strictInsertFill(metaObject, createTime, LocalDateTime.class, LocalDateTime.now());}Overridepublic void updateFill(MetaObject metaObject) {this.strictUpdateFill(metaObject, updateTime, LocalDateTime.class, LocalDateTime.now());}
}实体类字段注解 public class User {TableField(fill FieldFill.INSERT)private LocalDateTime createTime;TableField(fill FieldFill.UPDATE)private LocalDateTime updateTime;
}六、常见问题 表名或字段名驼峰转下划线 MyBatis-Plus 默认开启驼峰转下划线映射如 userName → user_name。若需关闭配置 mybatis-plus:configuration:map-underscore-to-camel-case: false逻辑删除全局配置 在 application.yml 中配置逻辑删除的默认值 mybatis-plus:global-config:db-config:logic-delete-field: isDeleted # 逻辑删除字段名logic-delete-value: 1 # 删除后的值logic-not-delete-value: 0 # 未删除时的值通过掌握以上注解开发者可以高效利用 MyBatis-Plus 简化数据库操作。更多细节可参考 MyBatis-Plus 官方文档。