使用mybatis-plus遇到的坑

r囧r小猫 2022-01-21 02:37 541阅读 0赞

简介

如今的开发,对于数据库的curd,很多人都是使用mybatis,说到mybatis就不得不提mybatis的增强工具:mybatis-plus 。

mybatis的增强版,只做增强不做改变。博主大飞表示,如果你使用mybatis而不懂mybatis-plus,那你out了,五星推荐。

由来

  1. 最近老有人问我,在mybatis的使用中,通过下划线命名变量的总是不起作用。

今天就来扒扒mybatis-plus中的一个关于下划线解析出问题的事情,懂的略过。

关于下划线不兼容问题,其实不是mybatis-plus的错,这个问题在mybatis中由来已久,先说说出现的经过吧

创建变量

以图书表为例创建实体类

  1. @Data
  2. @TableName("book")
  3. public class Book extends Model<Book> implements Serializable {
  4. private static final long serialVersionUID = 1L;
  5. @TableId("id")
  6. private String id;
  7. @TableField("book_name")
  8. private String book_name;//名称
  9. private String bookAuthor;//作者
  10. private String book_type;//文章类型
  11. private String book_category;//类型
  12. private Date create_date;//出版日期

在以上代码中,通过三种方式创建变量:

一种是直接通过TableField将数据库字段和变量字段名对应。

一种是不加对应关系直接通过下划线命名变量(与数据库字段名一直,可以不加字段声明);

第三种是驼峰命名法命名。

通过运行发现只有id和bookAuthor有数据,其他全部为空,神奇的空指针。

原因

具体原因还是要mybatis来背这个锅。

因为mybatis使用下划线代表大写,查询出来的字段如果带下划线,会自动转换为大写。

当然这个是可以通过设置去掉的,不建议这么搞。其实这些已经能满足所有要求了,为什么要和mybatis抢下划线呢,对吧,需要的就去官网或者网上查找吧,啊哈哈哈。。。。

发表评论

表情:
评论列表 (有 0 条评论,541人围观)

还没有评论,来说两句吧...

相关阅读