mybatis无法给带有下划线属性赋值问题

14 篇文章 2 订阅
9 篇文章 0 订阅

1、配置问题

<!-- 是否开启自动驼峰命名规则(camel case)映射, -->

<setting name="mapUnderscoreToCamelCase" value="true"/>

或者

//开启驼峰映射
        bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);

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

2、增加set方法转换值的方式

原实体类

    public class demo {  
      private String user_name;  
      private Striing pass_word;  
      
      
      public String getPass_word(){  
           return pass_word;  
      }  
      public void setPass_word(String pass_word){  
           this.pass_word=pass_word;  
      }  
      
    }  

原sql

select user_name,pass_word from demo;

这句sql在数据库可以查到数据,但是使用mybatis的实体类查询就查不到了。

解决方法

在实体类中增加以下两个set方法并把sql改为

select user_name as username,pass_word as password from demo;

使用实体类查询数据库实际上就是一个set的过程只需要把每个属性增加一个set方法就好了

    public void setUsernaem(String user_name){  
          this.user_name=user_name;  
     }  
     public void setPassword(String pass_word){  
          this.pass_word=pass_word;  
     }  

 

 

仅适用于不方便改实体类的情况

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值