mybatis查询的时候有些字段返回为null

实体类Category.java

package com.atguigu.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Accessors(chain = true)
public class Category {
    private Integer catId;
    private String name;
    private Long parentCid;
    private Integer catLevel;
    private Integer showStatus;
    private Integer sort;
    private String icon;
    private String productUnit;
    private Integer productCount;
    private Integer isDelete;
}

 mapper.xml




    

数据库中对应表

                         mybatis查询的时候有些字段返回为null_第1张图片  

Mybatis和Mybatis-plus 

         如图所示,形如pojo和数据库的表是这样映射的,那么如果是在select *之后,因为parent_cid和parentCid不对应,那么Pojo对象里的parentCid的属性值会显示Null

                                                         mybatis查询的时候有些字段返回为null_第2张图片

解决办法1

          把所有查出来的数据库字段起别名as成pojo对象里的属性名,那么就不会是null了




    

   方法二

          如果select 查询语句,as过多,会显的很臃肿,那么就可以使用reslutMap,具体的请查看https://blog.csdn.net/dsl59741/article/details/107940436,注意字段不太一样

方法三

        mybatis配置全局的驼峰命名规则,那么在映射的时候就不会出现字段为null的情况

server:
  port: 8081
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/gulimall_pms?useUnicode=true&characterUncoding=utf8&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.atguigu.entity
  configuration:
    map-underscore-to-camel-case: true           #配置mybatis全局的驼峰命名规则

        请注意是属性里边的pojo对象里的属性和数据库里的对应字段的对应关系如catId——cat_id,name——name,parent_cid——parentCId等等,或者是catId——catId,如果是这样的对应特点,可以使用,如果是catID——cat_id,id——cat_id都不能映射成功

 mybatis plus

      不用设置全局的驼峰命名规则,mp插件会自动去映射,如catId去自动映射cat_id,如果你的属性是catId,数据库是id,那么就会映射失败,因为Mp插件会根据catId去映射cat_id,但是数据库存在的是id,所以会映射失败

                         mybatis查询的时候有些字段返回为null_第3张图片

                         结果

                                mybatis查询的时候有些字段返回为null_第4张图片 

如果知识上有问题,请大家及时联系我,谢谢

               

你可能感兴趣的:(Mybatis)