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

    捐赠我们
        良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
        
  • 相关阅读:
    phpcms无法读取index.html的解决步骤
    PHPwind高级伪静态规则及方法
    WordPress 添加Meta Box的方法步骤
    WordPress实现登录或退出后直接跳转到首页的方法
    怎么在php里面利用str_replace防注入
    php strrpos()与strripos()函数不同之处在哪里呢
    smarty中增加类似foreach的功能自动加载数据方法
    php连接Access数据库错误及解决方法
    如何利用php array_multisort函数 对数据库排序
    php之XML转数组函数的方法
  • 原文地址:https://www.cnblogs.com/imentors/p/4809487.html
Copyright © 2011-2022 走看看