数据库中有数据,但是返回来的结果没有数据

1. SQL 映射问题

purchase_peopleIDpurchase_timepurchase_url 在 SQL 语句中是有选取的:

select id, user_id, dept_id, product_no, name, image_url, product_style, product_color, product_size, product_weight, batch_number, purchase_price, selling_price, product_location, anchor_get_time, anchor_id, receiving_time, purchase_peopleID, purchase_time, purchase_url

但是在 MyBatis 的 resultMap 或者 parameterMap 中,可能没有正确地映射这些字段到 Product 类中的对应属性。

2. 检查 Product 类的属性映射

确保 Product 类中有与数据库字段相匹配的属性,并且这些属性的命名和 SQL 查询中的字段一致。比如

public class Product {
    private Long id;
    private Long userId;
    private Long deptId;
    private String productNo;
    private String name;
    private String imageUrl;
    private String productStyle;
    private String productColor;
    private String productSize;
    private Double productWeight;
    private String batchNumber;
    private Double purchasePrice;
    private Double sellingPrice;
    private String productLocation;
    private Date anchorGetTime;
    private Long anchorId;
    private Date receivingTime;
    private Long purchasePeopleID;  // 确保字段匹配
    private Date purchaseTime;       // 确保字段匹配
    private String purchaseUrl;      // 确保字段匹配
    // 其他属性...
}

请检查 purchasePeopleIDpurchaseTimepurchaseUrl 是否在 Product 类中有对应的字段,并且类型与数据库字段类型匹配

3. 检查 ProductResult 映射(这个很重要)

<select> 标签中使用了 resultMap="ProductResult",请确保在 ProductResult 中正确映射了这几个字段。

<resultMap id="ProductResult" type="Product">
    <result column="purchase_peopleID" property="purchasePeopleID" />
    <result column="purchase_time" property="purchaseTime" />
    <result column="purchase_url" property="purchaseUrl" />
    <!-- 其他字段的映射 -->
</resultMap>

确保 ProductResult 中的每个字段都有正确的 columnproperty 映射

解释为什么需要 columnproperty 映射:

在 MyBatis 中,resultMap 用于将 SQL 查询结果映射到 Java 对象。当你执行查询时,MyBatis 会根据查询结果中的字段名(column)与 Java 对象的属性名(property)进行匹配。为了确保正确映射,必须确保以下两点:

  1. column:表示数据库查询结果中的列名。
  2. property:表示 Java 类中要映射到该列的属性名。

为什么需要这些映射?

  1. 数据库列名与 Java 属性名不一致: 数据库中的列名通常使用下划线命名法(例如 purchase_peopleID),而 Java 类的属性通常使用驼峰命名法(例如 purchasePeopleID)。MyBatis 通过 columnproperty 映射关系来确保它们能正确匹配。

  2. 确保数据正确映射: 如果没有这些映射,MyBatis 无法知道数据库中 purchase_peopleID 列的值应该填充到 Java 对象的 purchasePeopleID 属性中。因此,在 resultMap 中明确映射才能确保数据正确填充到 Java 对象中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值