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"/>
  • 结果
    在这里插入图片描述
问题总结

在这里插入图片描述
解决:
在这里插入图片描述

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