使用mybatis-plus遇到的坑

简介

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

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

由来

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

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

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

创建变量

以图书表为例创建实体类

@Data
@TableName("book")
public class Book extends Model<Book> implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId("id")
    private String id;

    @TableField("book_name")
    private String book_name;//名称

    private String bookAuthor;//作者

    private String book_type;//文章类型

    private String book_category;//类型

    private Date   create_date;//出版日期

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

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

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

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

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

原因

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值