zoukankan      html  css  js  c++  java
  • 04_解决字段名与实体类属性名不相同的冲突

    1 准备表和数据

    1. CREATE TABLE orders(
    2. order_id INT PRIMARY KEY AUTO_INCREMENT,
    3. order_no VARCHAR(20),
    4. order_price FLOAT
    5. );
    6. INSERT INTO orders(order_no, order_price) VALUES('aaaa', 23);
    7. INSERT INTO orders(order_no, order_price) VALUES('bbbb', 33);
    8. INSERT INTO orders(order_no, order_price) VALUES('cccc', 22);

    2 定义实体类:表的字段和实体的属性不一致

    1. public class Order {
    2. private int id;
    3. private String orderNo;
    4. private float price;
    5. }

    3 解决方法

    3.1 通过查询的别名

    1. <!-- 通过查询字段的别名来对应 -->
    2. <select id="getOrder" parameterType="int" resultType="Order">
    3. SELECT order_id id, order_no orderNo, order_price price FROM orders WHERE order_id=#{id}
    4. </select>
    测试
    1. @Test
    2. public void test1(){
    3. SqlSessionFactory factory = MybatisUtils.getFactory();
    4. SqlSession session = factory.openSession();
    5. String statement = "cn.imentors.mybatis.test4.orderMapper.getOrder";
    6. Order order = session.selectOne(statement , 2);
    7. System.out.println(order);
    8. }
    3.2 通过resultMap
    1. <resultMap type="Order" id="getOrder2Map">
    2. <id property="id" column="order_id"/>
    3. <result property="orderNo" column="order_no"/>
    4. <result property="price" column="order_price"/>
    5. </resultMap>
    6. <select id="getOrder2" parameterType="int" resultMap="getOrder2Map">
    7. SELECT * FROM orders WHERE order_id=#{id}
    8. </select>
    • resultMap : 封装一些映射关系
    •  id : 专门针对主键
    • result : 针对一般字段
    测试
    1. @Test
    2. public void test2(){
    3. SqlSessionFactory factory = MybatisUtils.getFactory();
    4. SqlSession session = factory.openSession();
    5. String statement = "cn.imentors.mybatis.test4.orderMapper.getOrder2";
    6. Order order = session.selectOne(statement , 2);
    7. System.out.println(order);
    8. }

    捐赠我们
        良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
        
  • 相关阅读:
    单链队列
    栈的顺序存储表示
    顺序队列
    串的定长顺序存储表示
    串的堆分配存储
    双向循环链表
    单循环链表的表示和实现
    串的块链存储表示
    线性表的顺序表示和实现
    线性表的单链表表示和实现
  • 原文地址:https://www.cnblogs.com/imentors/p/4809485.html
Copyright © 2011-2022 走看看