比如建一个表:
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>