mybatis的xml配置文件中使用select语句数据不全

本文分享了在使用MyBatis进行数据库操作时遇到的问题及解决办法,详细介绍了如何通过调整XML配置文件中的select语句和resultMap设置来正确映射查询结果到实体类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的数据表里项很多,但是用mybaits中的xml配置文件select语句却只返回了几句话,之前我的代码是这样的:

<select id="selectAll" resultType="entity.Transaction">
  select
  *
  from transaction
</select>

其中entity.Transaction指的是我建立好的实体类,里面有一个所有属性的构造函数,所以查找之后默认会调用该构造函数,构造函数如下,,,

public Transaction(Integer id, String time, String fromUserName, String fromUserType, String toUserName, String toUserType, Double transferValue, Double fromUserBalance, Double toUserBalance, String detail) {
    this.id = id;
    this.time = time;
    this.fromUserName = fromUserName;
    this.fromUserType = fromUserType;
    this.toUserName = toUserName;
    this.toUserType = toUserType;
    this.transferValue = transferValue;
    this.fromUserBalance = fromUserBalance;
    this.toUserBalance = toUserBalance;
    this.detail = detail;
}
但是调用该构造函数是不好用的,所以后来改成如下代码就好用了
<resultMap id="BaseResultMap" type="entity.Transaction">
  <constructor>
    <idArg column="id" javaType="java.lang.Integer" jdbcType="INTEGER" />
    <arg column="time" javaType="java.lang.String" jdbcType="VARCHAR" />
    <arg column="from_user_name" javaType="java.lang.String" jdbcType="VARCHAR" />
    <arg column="from_user_type" javaType="java.lang.String" jdbcType="CHAR" />
    <arg column="to_user_name" javaType="java.lang.String" jdbcType="VARCHAR" />
    <arg column="to_user_type" javaType="java.lang.String" jdbcType="CHAR" />
    <arg column="transfer_value" javaType="java.lang.Double" jdbcType="DOUBLE" />
    <arg column="from_user_balance" javaType="java.lang.Double" jdbcType="DOUBLE" />
    <arg column="to_user_balance" javaType="java.lang.Double" jdbcType="DOUBLE" />
    <arg column="detail" javaType="java.lang.String" jdbcType="VARCHAR" />
  </constructor>
</resultMap>

<sql id="Base_Column_List">
  id, time, from_user_name, from_user_type, to_user_name, to_user_type, transfer_value, 
  from_user_balance, to_user_balance, detail
</sql>

<select id="selectAll" resultMap="BaseResultMap">
  select
  <include refid="Base_Column_List" />
  from transaction
</select>

也就是返回值的构造放在了xml文件里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值