zoukankan      html  css  js  c++  java
  • Mybatis(sql列名与实体类名不同)

    解决字段名与实体类属性名不相同的冲突

      在创建实体类的时候,有时会碰到实体类与字段名不相同,这时候就会发生冲突,测试时候程序没有报错但是结果是空的。

    例如:

      数据库

    CREATE TABLE orders(
        order_id INT PRIMARY KEY AUTO_INCREMENT,
        order_no VARCHAR(20),
        order_price FLOAT
    );

      java实体类

    public class Orders {
        private int id;
        private String orderNo;
        private float price;
      //get,set
    }

      这时候字段名与实体类名冲突,解决方法如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.zhiyou100.hhz.dao.OrderDao">
        <select id="selectAll1" resultType="com.zhiyou100.hhz.bean.Orders">
            select order_id,order_no,order_price from orders
        </select>
        
        
        <select id="selectAll2" resultMap="OrderMap">
            select order_id,order_no,order_price from orders
        </select>
        
        <select id="selectAll3" resultType="com.zhiyou100.hhz.bean.Orders">
            select order_id id,order_no orderNo,order_price price from orders
        </select>
        
        <resultMap type="com.zhiyou100.hhz.bean.Orders" id="OrderMap">
            <id column="order_id" property="id"/>
            <result column="order_no" property="orderNo"/>
            <result column="order_price" property="price"/>
        </resultMap>
    </mapper>

      selectAll1为错误演示,查询结果为null

      1. resultMap

      通过resultMap标签和属性可以使数据库字段名与java实体类名产生映射,

      如上selectAll2(注意查询的字段如果不是*应该写数据库字段名,否则会报错)。

       2. 起别名

      可以在写select查询字段名时起个和实体类一样的名即可,如selectAll3(比较low,也不建议使用)。

  • 相关阅读:
    【深度学习】吴恩达网易公开课练习(class1 week2)
    【深度学习】吴恩达网易公开课练习(class1 week3)
    【python】内存调试
    【python】threadpool的内存占用问题
    Druid: A Real-time Analytical Data Store
    Mesa: GeoReplicated, Near RealTime, Scalable Data Warehousing
    Presto: SQL on Everything
    The Snowflake Elastic Data Warehouse
    Guava 库
    Java Annotation
  • 原文地址:https://www.cnblogs.com/zfyyfw/p/11439202.html
Copyright © 2011-2022 走看看