首页 > 数据库 >使用MyBatis select数据库查出有数据 但返回对象为null

使用MyBatis select数据库查出有数据 但返回对象为null

时间:2022-11-27 12:33:10浏览次数:41  
标签:String pay private PAY money MyBatis null id select

使用MyBatis select数据库查出有数据 但返回对象为null
8/4/2018 11:03:14 PM

今天测试项目出现使用MyBatis select数据库查出有数据 但返回对象为null

mybatis配置文件:

<!-- 根据主键ID查询订单信息-->
<select id="getPayOrderId" parameterType="java.lang.String" resultType="PayOrder">
SELECT
a.ID AS 'id',
a.USER_ID AS 'user_id',
a.MERCHANT_ID AS 'merchant_id',
a.PAY_ORDER_ID AS 'pay_order_id',
a.USER_NAME AS 'user_name',
a.MERCHANT_NAME AS 'merchant_name',
a.PAY_TYPE AS 'pay_type',
a.PAY_MONEY AS 'pay_money',
a.PAY_ZD_MONEY AS 'pay_zd_money',
a.PAY_BALANCE_MONEY AS 'pay_balance_money',
a.PAY_APPRECIATION_MONEY AS 'pay_appreciation_money',
a.PAY_BANKCARD_MONEY AS 'pay_bankcard_money',
a.STATUS AS 'status',
a.FINISH_TIME AS 'finish_time',
a.CREATE_TIME AS 'create_time'
FROM
pay_order a
WHERE a.ID = #{_id,jdbcType=VARCHAR}
</select>
 
对应查询的java实体类:

public class PayOrder {

private static final long serialVersionUID = 1L;
private String id;
private String user_id;
private String merchant_id;
private String pay_order_id;
private String pay_type;
private String pay_money;
private String pay_zd_money;
private String pay_balance_money;
private String pay_appreciation_money;
private String pay_bankcard_money;
private String status;
private Date create_time;
private Date finish_time;
private String merchant_name;
private String user_name;
private String pay_pwd;

//自动生成set、get方法

 
之后就出现通过ID进行查询返回对象一直为null,但是自己的sql语句在数据库中测试时显示有数据。

解决办法
1.修改Dao对应的xml配置

<resultMap id="setPayOrder" type="order.PayOrder">
<id column="ID" property="id" jdbcType="VARCHAR"/>
<result column="USER_ID" property="user_id" jdbcType="VARCHAR"/>
<result column="MERCHANT_ID" property="merchant_id" jdbcType="VARCHAR"/>
<result column="PAY_ORDER_ID" property="pay_order_id" jdbcType="VARCHAR"/>
<result column="USER_NAME" property="user_name" jdbcType="VARCHAR"/>
<result column="MERCHANT_NAME" property="merchant_name" jdbcType="VARCHAR"/>
<result column="PAY_TYPE" property="pay_type" jdbcType="VARCHAR"/>
<result column="PAY_MONEY" property="pay_money" jdbcType="VARCHAR"/>
<result column="PAY_ZD_MONEY" property="pay_zd_money" jdbcType="VARCHAR"/>
<result column="PAY_BALANCE_MONEY" property="pay_balance_money" jdbcType="VARCHAR"/>
<result column="PAY_APPRECIATION_MONEY" property="pay_appreciation_money" jdbcType="VARCHAR"/>
<result column="PAY_BANKCARD_MONEY" property="pay_bankcard_money" jdbcType="VARCHAR"/>
<result column="STATUS" property="status" jdbcType="VARCHAR"/>
<result column="CREATE_TIME" property="create_time" jdbcType="TIMESTAMP"/>
<result column="FINISH_TIME" property="finish_time" jdbcType="TIMESTAMP"/>
</resultMap>


<!-- 根据主键ID查询订单信息-->
<select id="getPayOrderId" parameterType="java.lang.String" resultMap="setPayOrder">
SELECT
a.ID AS 'id',
a.USER_ID AS 'user_id',
a.MERCHANT_ID AS 'merchant_id',
a.PAY_ORDER_ID AS 'pay_order_id',
a.USER_NAME AS 'user_name',
a.MERCHANT_NAME AS 'merchant_name',
a.PAY_TYPE AS 'pay_type',
a.PAY_MONEY AS 'pay_money',
a.PAY_ZD_MONEY AS 'pay_zd_money',
a.PAY_BALANCE_MONEY AS 'pay_balance_money',
a.PAY_APPRECIATION_MONEY AS 'pay_appreciation_money',
a.PAY_BANKCARD_MONEY AS 'pay_bankcard_money',
a.STATUS AS 'status',
a.FINISH_TIME AS 'finish_time',
a.CREATE_TIME AS 'create_time'
FROM
pay_order a
WHERE a.ID = #{_id,jdbcType=VARCHAR}
</select>
 
问题原因:实体类中属性与表中字段不一致时,添加resultMap进行重新关联实体类。


————————————————
版权声明:本文为CSDN博主「康__」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_30055773/article/details/81416791

标签:String,pay,private,PAY,money,MyBatis,null,id,select
From: https://www.cnblogs.com/javalinux/p/16929438.html

相关文章

  • 三、Mybatis(高级)
    一.Mybatis注解开发单表操作1.1MyBatis的常用注解这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了。我们先围绕一些......
  • Mybatis基础
    1.Mybatis概述1.1Mybatis概念MyBatis是一款优秀的持久层框架,用于简化JDBC开发MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apachesoftware......
  • mybatis框架的学习
    目的:1.ORM框架的发展历史与MyBatis的高级应用2.MyBatis的体系结构与核心工作原理分析3.MyBatis基础模块讲解与强化核心原理4.探寻插件的原理与深究和Spring的集成5.通过......
  • Mybatis 入门实战(3)--Spring Boot 中使用 Mybatis
    本文主要介绍如何在SpringBoot中使用Mybatis,相关的环境及软件信息如下:SpringBoot2.6.12、Mybatis3.5.9。1、工程整体结构使用Maven来构建工程,工程目录结构如下:......
  • Java:Spring Boot整合mybatis-plus示例
    文档​​https://start.spring.io/​​mybatis-plus​​文档​​​|​​github​​maven​​文档​​p6spy​​文档​​​|​​github​​使用示例目录​​使用示......
  • mybatis源码环境搭建
    MyTest.java@Testpublicvoidtest(){Stringresource="mybatis-config.xml";InputStreaminputStream=null;try{inputStream=Resour......
  • Mybatis基础
    1.Mybatis概述1.1Mybatis概念MyBatis是一款优秀的持久层框架,用于简化JDBC开发MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apachesoftware......
  • mybatis
    一、创建mybatis配置文件和mapper映射文件的模板mabatis模板<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig......
  • Linux 中如何将输出和错误重定向到 /dev/null
    Linux中如何将输出和错误重定向到/dev/null原创 TIAP TIAP 2022-11-1708:00 发表于山东收录于合集#Linux139个TIAP技术分享,经验交流,职业生涯探讨。101......
  • Mybatis笔记
    由于Mybatis是面向接口进行编程的,需要注意以下两点:​1、映射文件中的namespace标签中的值需要和mapper中的全类名相同​2、映射文件中的id属性值,需要和mapper接口中的......