[MyBatis踩坑]正确执行sql并在控制台打印,取值却为[null]==>带下划线的字段名

今天踩了个大坑。明明开启了驼峰命名,但是写User表明明能正确查出来有些过

但是打印却是空,我百分之百确定我配置文件没有写错,但是单元测试通过却还是空

 

我的实体类为

可以看到我用了下划线……


public class User implements Serializable {

 private int u_id;
 private String u_name;
 private String u_realname;
 private String u_password;
 private String u_address;
 private String u_phone;

一开始以为扫描包的冲突,没用,pass

以为是数据库关键字冲突,改为users表,不行 pass

后来心血来潮,将字段名改掉


public class Users {

 private Integer uid;
 private String uname;
 private String upassword;
 private String urealname;
 private String uaddress;
 private String uphone;

它就能正确显示了……吐血……

据说:

mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,然后去实体类Category匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想该实体类的话,建议采用resultMap。

所以,要么

自定义resultMap

要么,去掉下划线。以上。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值