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. }

    捐赠我们
        良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
        
  • 相关阅读:
    326. Power of Three
    python实现Excel删除特定行、拷贝指定行操作
    283. Move Zeroes
    268. Missing Number
    263. Ugly Number
    258. Add Digits
    257. Binary Tree Paths
    二叉树的创建,递归前序、中序、后序遍历以及队列实现层遍历
    242. Valid Anagram
    237. Delete Node in a Linked List
  • 原文地址:https://www.cnblogs.com/imentors/p/4809487.html
Copyright © 2011-2022 走看看