MyBatis常见面试题7:当实体类中的属性名和表中的字段名不一样,怎么办 ?
第1种解决方案:通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。
<select id="getOrder" parametertype="int" resultetype="cn.mybatis.domain.order">
select order_id id, order_no orderNo ,order_price price form orders where order_id=#{id};
</select>
第2种解决方案:通过<resultMap>来映射字段名和实体类属性名的一一对应的关系。
<select id="getOrder" parameterType="int" resultMap="orderResultMap">
select * from orders where order_id=#{id}
</select>
<resultMap id="orderResultMap" type="cn.mybatis.domain.order" >
<!–用id属性来映射主键字段–>
<id property="id" column="order_id">
<!–用result属性来映射非主键字段,property为实体类属性名,column为数据表中的属性–>
<result property= "orderNo" column="order_no"/>
<result property="price" column="order_price"/>
</reslutMap>
还有一种@Column注解,在某个需要与表中字段一致的属性加