MyBatis字段名和属性名不一致的解决方法
作者:zjw_rp
本文主要介绍了MyBatis字段名和属性名不一致的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1. 字段取别名,和属性名保持一致
映射文件
<mapper namespace="com.atguigu.mybatis.mapper.EmpMapper"> <!-- 字段名跟属性名不一致情况下,如何处理映射关系--> <!-- Emp getEmpById(@Param("empId") Integer empId);--> <select id="getEmpById" resultType="Emp"> <!--方式一:给字段起别名,和属性名保持一致--> select emp_id empId,emp_name empName,age,gender from t_emp where emp_id=#{empId} </select> </mapper>
2. 使用全局配置处理字段名和属性名不一致
当字段符合mysql要求,使用_线,而符合java的要求使用驼峰,
可以在mybatis核心配置设置一个全局配置,可以自动将下划线映射为驼峰。
<setting name="mapUnderscoreToCamelCase" value="true"/>
①核心配置文件
<!-- 设置全局配置 将下划线映射为驼峰 --> <!--emp_id-empId; emp_Name-empName --> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings>
②映射文件
<select id="getEmpById" resultType="Emp"> select * from t_emp where emp_id=#{empId} </select>
3. 使用自定义映射resultMap处理字段名和属性不一致情况
resultMap:设置自定义的映射关系
id:唯一标识
type:处理映射关系的实体类的类型
标签:
id:处理主键和实体类中实现的映射关系
result:处理普通字段和实体类中属性的映射关系
column:映射关系中的字段名,必须是sql查询出某个字段
property:设置映射关系中的属性的属性名,必须是处理的实体类类型中的属性名
映射文件
<resultMap id="empResultMap" type="Emp"> <id column="emp_id" property="empId"></id> <result column="emp_name" property="empName"></result> <result column="age" property="age"></result> <result column="gender" property="gender"></result> </resultMap> <select id="getEmpById" resultMap="empResultMap"> select * from t_emp where emp_id=#{empId} </select>
到此这篇关于MyBatis字段名和属性名不一致的解决方法的文章就介绍到这了,更多相关MyBatis字段名和属性名不一致内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!