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,也不建议使用)。

  • 相关阅读:
    Autofac 依赖注入
    C#高级语法
    @helper
    Spiral Matrix -- LeetCode
    Best Time to Buy and Sell Stock with Cooldown -- LeetCode
    Kth Smallest Element in a Sorted Matrix -- LeetCode
    Number of Connected Components in an Undirected Graph -- LeetCode
    Super Ugly Number -- LeetCode
    Ugly Number II -- LeetCode
    Missing Ranges -- LeetCode
  • 原文地址:https://www.cnblogs.com/zfyyfw/p/11439202.html
Copyright © 2011-2022 走看看