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

您所在的位置:网站首页 java数据库查询返回为null mybatis查询的时候有些字段返回为null

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

2023-07-27 04:16| 来源: 网络整理| 查看: 265

实体类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

select * from pms_category where cat_id = #{cId}

数据库中对应表

                           

Mybatis和Mybatis-plus 

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

                                                         

解决办法1

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

select cat_id as catId,parent_cid as parentCid,cat_level as catLevel, show_status as showStatus,product_unit as productUnit,product_count as productCount,is_delete as isDelete from pms_category where cat_id = #{cId}

   方法二

          如果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,所以会映射失败

                         

                         结果

                                 

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

               



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3