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

  • 相关阅读:
    linux服务器NAT后无法在内网通过外部IP访问内部服务的问题
    Centos7离线部署docker
    centos7运维记录文档
    centos7离线部署Patroni
    nginx常用运维日志分析命令
    Ubuntu只读文件系统修复方法
    pm2常用命令
    Expert 诊断优化系列------------------锁是个大角色
    Expert 诊断优化系列------------------给TempDB 降温
    Expert 诊断优化系列------------------透过等待看系统
  • 原文地址:https://www.cnblogs.com/zfyyfw/p/11439202.html
Copyright © 2011-2022 走看看