Mybatis解决数据库字段名和实体类属性名不一致的问题(三)

通常我们设计数据库表字段时会使用下划线拼接,而javaBean中通常使用驼峰命名表示属性。如表中的某个字段user_id-->userId,如何解决数据库字段名和实体类属性名不一致的问题问题呢?

方法一:使用别名的形式

​
<select id="findByTel" resultType="user">
    select user_id as userId, age, sex ,address from tb_user where user_id=#{id}
</select>

​

方法二:使用resultMap映射实体类属性名和表的字段名一一对应关系

resultType可以指定将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功。

如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系,resultMap实质上还需要将查询结果映射到pojo对象中。

resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。

方法三:在核心配置文件中启用下划线与驼峰式命名规则的映射 

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

本人亲测有效哟,如有不同见解,欢迎留言指正。望不吝赐教!!! 

发布了132 篇原创文章 · 获赞 1 · 访问量 7290

猜你喜欢

转载自blog.csdn.net/duan196_118/article/details/104270995