首页 > 其他 > 详细

mybatis字段名与类属性名不相同的冲突

时间:2015-03-18 17:41:40      阅读:323      评论:0      收藏:0      [点我收藏+]

新建一个表

CREATE TABLE orders(
order_id INT PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(20),
order_price FLOAT
);
INSERT INTO orders(order_no, order_price) VALUES(aaaa, 23);
INSERT INTO orders(order_no, order_price) VALUES(bbbb, 33);
INSERT INTO orders(order_no, order_price) VALUES(cccc, 22);

然后建一个javaBean

public class Order {
private int id;
private String orderNo;
private float price;
}

建立映射文件

<select id="getOrder" parameterType="int" resultType="Order">
        select * from orders where order_id=#{id}
</select>

这个时候由于javaBean里面的id和数据库里面的order_id不对应,执行后返回的是以数据库里面取得名字的字段值,这时候bean里面没有这些字段名所以赋值失败。

这时候有两种解决方法:


 

方式一:通过在sql语句中定义别名

<select id="selectOrder" parameterType="int" resultType="_Order">
select order_id id, order_no orderNo,order_price price from orders where order_id=#{id}
</select>

方式二:定义一个映射

<select id="getOrder2" parameterType="int" resultMap="getOrder2Map">
        select * from orders where order_id=#{id}
</select>
    
<resultMap type="Order" id="getOrder2Map">
        <id property="id" column="order_id"/>
        <result property="orderNo" column="order_no"/>
        <result property="price" column="order_price"/>
</resultMap>

 

  

mybatis字段名与类属性名不相同的冲突

原文:http://www.cnblogs.com/tuifeideyouran/p/4347475.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!