通常我们设计数据库表字段时会使用下划线拼接,而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>
本人亲测有效哟,如有不同见解,欢迎留言指正。望不吝赐教!!!