• MyBatis-Plus常用注解


    在使用 MyBatis-Plus 实现基本的 CRUD 时,我们并没有指定要操作的表,只是在 Mapper接口继承 BaseMapper 时,设置了泛型 User ,而操作的表为 user 表

    由此得出结论,MyBatis-Plus 在确定操作的表时,由 BaseMapper 的泛型决定,即实体类型决

    定,且默认操作的表名和实体类型的类名一致

    <pre class="hljs less">@TableName</pre>
    
    • 1

    注解使用条件:

    若实体类类型的类名和要操作的表的表名不一致,会出现什么问题?

    我们将表 user 更名为 t_user ,测试查询功能 程序抛出异常,Table ‘mybatis_plus.user’ doesn’t exist ,因为现在的表名为 t_user ,而默认操作 的表名和实体类型的类名一致,即user 表

    在实体类类型上添加 @TableName(“t_user”) ,标识实体类对应的表,即可成功执行 SQL 语句 [图片上传失败…(image-dcd5bd-1656403009646)]

    <pre class="hljs less">@TableId</pre>
    
    • 1

    MyBatis-Plus 在实现 CRUD 时,会默认将 id 作为主键列,并在插入数据时,默认 基于雪花算法的策略生成id。

    若实体类和表中表示主键的不是 id ,而是其他字段,例如 uid , MyBatis-Plus不会 自动识别 uid 为主

    键列,

    解决方式:

    在实体类中 uid 属性上通过 @TableId 将其标识为主键,即可成功执行 SQL 语句

    <pre class="hljs less">@TableField</pre>
    
    • 1

    经过以上的测试,我们可以发现, MyBatis-Plus 在执行 SQL 语句时,要保证实体类中的属性名和

    表中的字段名一致

    情况分两种:

    1.当命名有下划线的时候,mybatisplus会自动将下划线命名规则转化为驼峰命名法

    2.如不符合第一种情况就要需要使用注解@TableField放在实体上 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tewqyGjp-1656403150026)(https://upload-images.jianshu.io/upload_images/28226262-8b9bd7dfb248c9c6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

    <pre class="hljs less">@TableLogic</pre>
    
    • 1

    逻辑删除

    物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据

    逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为 “ 被删除状态 ” ,之后在数据库

    中仍旧能看到此条数据记录

    使用场景:可以进行数据恢复

    实现逻辑删除

    实现逻辑删除以后,真正执行的是修改功能。

    默认值为0,逻辑删除后的值为1.

  • 相关阅读:
    港科夜闻|香港科大副校长汪扬教授代表第一届联盟联席理事长单位在京港大学联盟2022年理事会作工作总结报告...
    ubuntu20.04下锁屏快捷键super+L不能用的解决方法
    XML文件读写
    济南申报高新技术企业不符合的条件
    云原生:构建现代化应用的新篇章
    Linux软件安装到哪个目录
    CDH大数据平台 /bin/sh: mysql_config: command not found
    20、Python -- 变量作用域、局部函数
    使用 DCGAN 生成动漫面孔-附训练数据集下载
    卷积神经网络(CNN)理解
  • 原文地址:https://blog.csdn.net/jjc4261/article/details/125504208