Mybatis中,当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

方法一:写SQL语句时起别名

	<select id="getEmployeeById" resultType="com.atguigu.mybatis.entities.Employee">
		select id,first_name firstName,email,salary,dept_id deptID from employees where id = #{id}
	</select>

方法二:在MyBatis的全局配置文件中开启驼峰命名规则

mapUnderscoreToCamelCase:true/false 
<!--是否启用下划线与驼峰式命名规则的映射(如first_name => firstName)-->
<configuration>  
    <settings>  
        <setting name="mapUnderscoreToCamelCase" value="true" />  
    </settings>  
</configuration>

方法三:在Mapper映射文件中使用resultMap来自定义映射规则

	<select id="getEmployeeById" resultMap="myMap">
		select * from employees where id = #{id}
	</select>
	
	<!-- 自定义高级映射 -->
    <resultMap type="com.atguigu.mybatis.entities.Employee" id="myMap">
    	<!-- 映射主键 -->
    	<id column="id" property="id"/>
    	<!-- 映射其他列 -->
    	<result column="last_name" property="lastName"/>
    	<result column="email" property="email"/>
    	<result column="salary" property="salary"/>
    	<result column="dept_id" property="deptId"/>
    </resultMap>
posted @ 2020-03-12 09:49  岸北  阅读(1584)  评论(0编辑  收藏  举报