mybatis框架下解決數據庫中表的列的字段名和實體類屬性不相同的問題


導包。。。。

 

實體類中的屬性,getter,setter,tostring,構造等方法就不寫了

private int id;
private String orderNo;
private float price;

 

數據庫中表的字段名:

order_id INT PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(20),
order_price FLOAT

 

src下的conf.xml文件中解決,有兩種方法,一種方法是在sql語句中寫入別名,另一種方法是使用<resultMap>這個標簽

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mybatis.test1.orderMapper">
    <!-- 解決字段名和實體類屬性不相同的問題 -->
    
    <!-- 方法一:sql語句中加入別名 -->
    <select id="getOrder" resultType="Order">
        select order_id id,order_no orderNo,order_price price from orders where order_id=#{id}
    </select>
    
    <!-- 方法二:通過<resultMap> ,需要注意的是  resultMap屬性值 和 resultMap標簽中id屬性值相等
    resultMap標簽中的   id為數據表中主鍵的屬性,result為其他屬性,property為實體類屬性名,column為數據表中的屬性
    -->
    <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>
    
</mapper>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM