解决字段名和实体类属性名不相同的冲突

比如建一个表:

CREATE TABLE orders(
order_id INT PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(20),
order_price FLOAT
);

建一个实体类

public class Order {
private int id;
private String orderNo;

private float price;
}

字段order_id与属性id不同,解决的方式1是通过

方式一: 通过在sql 语句中定义别名,其中别名id与类的属性名保持一致,输入的order_id就是从属性/别名中得到的。
<select id="selectOrder" parameterType="int" resultType="_Order">
select order_id id, order_no orderNo,order_price price from orders where order_id=#{id}
</select>

解决的方式2是通过<resultMap>,如果字段名与类的属性名不同,就不能用resultType,而是用resultMap,并且在下面的select标签中注明字段和属性名。

<select id="selectOrderResultMap" parameterType="int" resultMap="orderResultMap">
select * from orders where order_id=#{id}
</select>

<!-- 下面一句表示返回结果类型是_Order id只是起标明/识别作用-->
<resultMap type="_Order" id="orderResultMap">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
<result property="price" column="order_price"/>
</resultMap>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值