Mybatis-03(表字段與實體屬性對應)

目錄結構

在這裏插入圖片描述

實際練習
  • 建立數據庫表
//建立orders表並插入三條數據
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('aaa',23
INSERT INTO orders(order_no,order_price)VALUES('bbb',33);
INSERT INTO orders(order_no,order_price)VALUES('ccc',22);
  • 建實體類
public class Order {
    private int id;
    private String orderNo;
    private float price;
    
    public int getId() {return id;}
    public void setId(int id) {this.id = id;}
    public String getOrderNo() { return orderNo;}
    public void setOrderNo(String orderNo) {this.orderNo = orderNo;}
    public float getPrice() {return price;}
    public void setPrice(float price) {this.price = price; }
}

  • 測試類
public class Test4 {
    @Test
    public void test4(){
       SqlSessionFactory factory = MybatisUtils.getFactory();
        SqlSession session =factory.openSession();//打開一個連接
        //第一種方式在sql語句上修改對應字段
        String statement="com.atguigu.day03_mybatis.test4.oderMapper.getOrder";
        //第二種方式,用resultMap封裝一些對應關係
          statement="com.atguigu.day03_mybatis.test4.oderMapper.getOrder2";
        //返回order對象
        Order order = session.selectOne(statement,2);
        System.out.println(order.getId());
        System.out.println(order.getOrderNo());
        System.out.println(order.getPrice());
        session.close();
    }
}
  • orderMapper.xml文件
<selectid="getOrder" parameterType="int" resultType="Order">
      select * from orders where order_id=#{id}
</select>
//如果按照之前的方式寫sql語句
<select id="getOrder2" parameterType="int" resultMap="getOrder2Map">
    select * from orders where order_id=#{id}
</select>

在這裏插入圖片描述
原因:我們正常些sql語句 select * from 表中的字段與實體建立的字段不對應

//方式一:
<selectid="getOrder"parameterType="int"resultType="com.atguigu.day03_mybatis.bean.Order">
     select order_id id, order_no orderNo, order_price price from orders where order_id=#{id} 
</select>

//方式二:
//注意resultMap要與下面resultMap的id一致
<select id="getOrder2" parameterType="int" resultMap="getOrder2Map">
        select * from orders where order_id=#{id}
</select>

<resultMap type="com.atguigu.day03_mybatis.bean.Order" id="getOrder2Map">
        <id property="id" column="order_id"/>
        <result property="price" column="order_price"/>
        <result property="orderNo" column="order_no"/>
 </resultMap>
  • 在配置文件conf.xml配置orderMapper的mapper文件
<mapper resource="com/atguigu/day03_mybatis/test4/orderMapper.xml"/>
  • 結果
    在這裏插入圖片描述
問題總結

在這裏插入圖片描述
解決:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章