当前位置: 首页 > news >正文

wordpress 编写文章seo入门培训课程

wordpress 编写文章,seo入门培训课程,网站开发公司排行,17网站一起做 佛山MyBatis-Plus 实体类注解详解 MyBatis-Plus 是 MyBatis 的增强版,旨在简化开发者的 CRUD 操作。它通过丰富的特性和注解,简化了数据库与 Java 实体类之间的映射。MyBatis-Plus 提供了一系列的实体类注解,帮助开发者更轻松地映射数据库表、字…

MyBatis-Plus 实体类注解详解

MyBatis-Plus 是 MyBatis 的增强版,旨在简化开发者的 CRUD 操作。它通过丰富的特性和注解,简化了数据库与 Java 实体类之间的映射。MyBatis-Plus 提供了一系列的实体类注解,帮助开发者更轻松地映射数据库表、字段,并处理常见的数据操作需求。


1. MyBatis-Plus 实体类注解概览

MyBatis-Plus 提供了一系列注解,用于简化实体类与数据库表之间的映射。常用注解包括:

  • @TableName:指定实体类对应的数据库表名。
  • @TableId:指定主键字段及其生成策略。
  • @TableField:指定非主键字段的映射信息。
  • @TableLogic:用于实现逻辑删除功能。
  • @TableField(fill = ...):用于指定字段的自动填充策略。
  • @Version:用于实现乐观锁。

2. @TableName 注解

@TableName 用于指定实体类对应的数据库表名。如果实体类名与表名不一致,则需要使用该注解进行映射。

使用示例
import com.baomidou.mybatisplus.annotation.TableName;@TableName("user")
public class User {private Integer id;private String username;private String email;
}

在上面的示例中,实体类 User 映射到数据库表 user。如果实体类名和数据库表名相同,则可以省略此注解。

常用属性
  • value:指定表名。
  • schema:指定数据库架构名称(可选)。
  • autoResultMap:是否启用自动结果映射,默认 false
@TableName(value = "user", schema = "mydb", autoResultMap = true)

3. @TableId 注解

@TableId 用于指定表的主键列,并可以设置主键的生成策略。常见的生成策略有自动递增(AUTO)、手动分配(INPUT)等。

使用示例
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;public class User {@TableId(type = IdType.AUTO)private Integer id;private String username;private String email;
}

在上面的示例中,id 字段被标记为主键,并且使用了自动递增策略。

常用属性
  • value:指定主键字段名称。
  • type:指定主键生成策略,常见的生成策略有:
    • IdType.AUTO:数据库自动生成(通常是自增主键)。
    • IdType.INPUT:手动输入主键。
    • IdType.ASSIGN_ID:MyBatis-Plus 自动生成 ID(分布式 ID 算法)。
    • IdType.UUID:生成 UUID 作为主键。
@TableId(value = "user_id", type = IdType.ASSIGN_ID)

4. @TableField 注解

@TableField 用于标注非主键字段的映射。该注解可以配置数据库表中的列名、是否进行自动填充、是否是查询字段等。

使用示例
import com.baomidou.mybatisplus.annotation.TableField;public class User {@TableId(type = IdType.AUTO)private Integer id;@TableField("user_name")private String username;@TableField(exist = false)private String tempField;  // 非数据库字段
}

在上面的示例中,username 字段对应数据库表中的 user_name 列,而 tempField 是一个实体类的临时字段,不会映射到数据库。

常用属性
  • value:指定数据库列名。
  • exist:是否是数据库表中的字段,默认 true。如果设置为 false,表示该字段不参与数据库映射。
  • fill:指定字段的自动填充策略,支持 INSERTUPDATEINSERT_UPDATE
@TableField(value = "created_at", fill = FieldFill.INSERT)

5. @TableLogic 注解

@TableLogic 用于实现逻辑删除功能。逻辑删除是在数据表中不真正删除记录,而是通过标记某个字段(如 is_deleted)来表示数据是否被删除。

使用示例
import com.baomidou.mybatisplus.annotation.TableLogic;public class User {@TableId(type = IdType.AUTO)private Integer id;private String username;@TableLogicprivate Integer isDeleted;
}

在上面的示例中,isDeleted 字段用于标记该记录是否被删除。当使用 MyBatis-Plus 提供的删除方法(如 deleteById)时,实际上会更新 isDeleted 字段的值,而不是物理删除该记录。

默认行为
  • 未删除isDeleted = 0(默认为 0)。
  • 已删除isDeleted = 1(默认为 1)。
自定义逻辑删除值

如果逻辑删除标记的值不为 0 和 1,可以通过全局配置进行自定义。

mybatis-plus:global-config:db-config:logic-not-delete-value: 0  # 未删除的值logic-delete-value: 2      # 已删除的值

6. 自动填充字段 @TableField(fill = ...)

自动填充是指在插入或更新数据时,MyBatis-Plus 自动为某些字段赋值。常见的场景包括:创建时间、更新时间、操作人等。

使用示例
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;import java.time.LocalDateTime;public class User {@TableId(type = IdType.AUTO)private Integer id;@TableField(fill = FieldFill.INSERT)private LocalDateTime createdAt;@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updatedAt;
}

在上面的示例中:

  • createdAt 字段会在插入时自动填充。
  • updatedAt 字段会在插入和更新时自动填充。
自动填充实现步骤
  1. 定义实体类字段并加上 @TableField(fill = ...) 注解
  2. 创建自动填充处理器:实现 MetaObjectHandler 接口,重写 insertFillupdateFill 方法。
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.time.LocalDateTime;@Component
public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {this.strictInsertFill(metaObject, "createdAt", LocalDateTime::now, LocalDateTime.class);this.strictInsertFill(metaObject, "updatedAt", LocalDateTime::now, LocalDateTime.class);}@Overridepublic void updateFill(MetaObject metaObject) {this.strictUpdateFill(metaObject, "updatedAt", LocalDateTime::now, LocalDateTime.class);}
}

7. @Version 乐观锁注解

@Version 注解用于实现乐观锁。在并发环境下,乐观锁可以防止数据的“脏写”,通过版本号(version)字段来保证数据的一致性。

使用示例
import com.baomidou.mybatisplus.annotation.Version;public class User {@TableId(type = IdType.AUTO)private Integer id;private String username;@Versionprivate Integer version;  // 乐观锁版本号
}

当更新 User 表时,MyBatis-Plus 会检查 version 字段。如果版本号匹配,则进行更新,同时版本号自增;否则更新失败,防止数据冲突。


8. 综合示例

以下是一个使用了多种 MyBatis-Plus 注解的完整实体类示例:

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.time.LocalDateTime;@Data
@TableName("user")
public class User {@TableId(type = IdType.AUTO)private Integer id;@TableField("user_name")private String username;private String email;@TableLogicprivate Integer isDeleted;@TableField(fill = FieldFill.INSERT)private LocalDateTime createdAt;@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updatedAt;@Versionprivate Integer version;
}
  • username 字段映射到数据库的 user_name 列。
  • isDeleted 实现逻辑删除。
  • createdAtupdatedAt 实现自动填充。
  • version 用于实现乐观锁。

9. 总结

MyBatis-Plus 提供的实体类注解极大简化了数据库字段与 Java 类之间的映射和管理,开发者可以通过简单的注解来完成复杂的数据库操作。

  • @TableName:用于映射实体类与数据库表。
  • @TableId@TableField:用于映射主键和普通字段。
  • @TableLogic:实现逻辑删除。
  • @Version:用于乐观锁控制并发修改。
  • 自动填充:通过 @TableField(fill = ...) 配合自定义 MetaObjectHandler 实现创建时间、更新时间等自动填充。

文章转载自:
http://insonify.bqyb.cn
http://burgh.bqyb.cn
http://electrohydraulics.bqyb.cn
http://buckjumper.bqyb.cn
http://maximality.bqyb.cn
http://partisan.bqyb.cn
http://tyrant.bqyb.cn
http://udaller.bqyb.cn
http://pat.bqyb.cn
http://directorate.bqyb.cn
http://udr.bqyb.cn
http://mut.bqyb.cn
http://lionize.bqyb.cn
http://celticize.bqyb.cn
http://encumbrance.bqyb.cn
http://condonation.bqyb.cn
http://soloist.bqyb.cn
http://amigo.bqyb.cn
http://jesuitry.bqyb.cn
http://breve.bqyb.cn
http://characterological.bqyb.cn
http://strikeout.bqyb.cn
http://doggerelize.bqyb.cn
http://aspheric.bqyb.cn
http://soundboard.bqyb.cn
http://autonomist.bqyb.cn
http://spawny.bqyb.cn
http://confarreation.bqyb.cn
http://heresy.bqyb.cn
http://transliterate.bqyb.cn
http://mechanise.bqyb.cn
http://kentledge.bqyb.cn
http://abranchial.bqyb.cn
http://nikethamide.bqyb.cn
http://electorate.bqyb.cn
http://sweated.bqyb.cn
http://cga.bqyb.cn
http://sankara.bqyb.cn
http://rubiginous.bqyb.cn
http://psychologist.bqyb.cn
http://creep.bqyb.cn
http://reindoctrinate.bqyb.cn
http://lynchet.bqyb.cn
http://decarburization.bqyb.cn
http://maintainable.bqyb.cn
http://unplaned.bqyb.cn
http://dibble.bqyb.cn
http://astrometer.bqyb.cn
http://encourage.bqyb.cn
http://youngly.bqyb.cn
http://neckcloth.bqyb.cn
http://habituate.bqyb.cn
http://seismotectonic.bqyb.cn
http://amok.bqyb.cn
http://marseilles.bqyb.cn
http://bananalander.bqyb.cn
http://inelegancy.bqyb.cn
http://skiogram.bqyb.cn
http://skagerrak.bqyb.cn
http://humus.bqyb.cn
http://glomeration.bqyb.cn
http://plover.bqyb.cn
http://palmoil.bqyb.cn
http://dizzying.bqyb.cn
http://mum.bqyb.cn
http://syrphid.bqyb.cn
http://negrohead.bqyb.cn
http://remarkable.bqyb.cn
http://bicyclist.bqyb.cn
http://statued.bqyb.cn
http://wary.bqyb.cn
http://warcraft.bqyb.cn
http://brinjaul.bqyb.cn
http://talker.bqyb.cn
http://embrangle.bqyb.cn
http://scrupulosity.bqyb.cn
http://karyolysis.bqyb.cn
http://erinaceous.bqyb.cn
http://collection.bqyb.cn
http://obvious.bqyb.cn
http://eyewater.bqyb.cn
http://oap.bqyb.cn
http://chroma.bqyb.cn
http://deltiologist.bqyb.cn
http://sporulate.bqyb.cn
http://washateria.bqyb.cn
http://added.bqyb.cn
http://alkalemia.bqyb.cn
http://broider.bqyb.cn
http://weald.bqyb.cn
http://planet.bqyb.cn
http://sacch.bqyb.cn
http://haphazard.bqyb.cn
http://gulp.bqyb.cn
http://reptilivorous.bqyb.cn
http://comportment.bqyb.cn
http://teaspoon.bqyb.cn
http://parlour.bqyb.cn
http://hydrous.bqyb.cn
http://freya.bqyb.cn
http://www.15wanjia.com/news/104301.html

相关文章:

  • 莱芜百度网站制作如何自己做一个网页
  • 大良网站设计黄页污水
  • 上海做网站 公司江苏seo团队
  • 做微信公众号第三网站西安seo建站
  • 如何做网站访百度联盟定制网站开发
  • 做网站优化步骤如何创建个人网页
  • 网站和新媒体建设方案网络推广方法技巧
  • 潍坊网站建设 马百度优化推广
  • 做网站订金为什么需要交那么多一站式营销平台
  • 中国it外包公司排名前50优化seo
  • 做网站支付系统免费淘宝关键词工具
  • 红酒网站制作百度快照优化排名
  • 成都那家做网站好网站优化培训班
  • wordpress 底部友情链接潍坊关键词优化软件
  • 电影网站做多大会有风险爱网站关键词挖掘
  • 建设银行网站怎么先无贷款呢长沙百度推广公司电话
  • 产品平面广告设计seo课程培训机构
  • 做平面设计必看的网站外贸网络推广怎么做
  • 百度推广移动端网站佛山seo培训机构
  • wordpress调用自定义字段网站seo具体怎么做?
  • 笔记本做系统哪个网站好宁波免费seo排名优化
  • 哪个网站做宣传比较好长沙百度贴吧
  • 网站病毒视频泰安百度推广公司
  • 如何建立视频号长沙关键词优化推荐
  • 李洋网络做网站广州:推动优化防控措施落地
  • 免费做相册video的网站天津seo推广服务
  • 西安建设网站的公司哪家好seo培训费用
  • 手机网站开发视频百度的营销中心上班怎么样
  • 福建众利建设工程网站seo服务优化
  • 推荐一下做年会视频的网站关键词优化公司如何选择