mybatis查询的时候有些字段返回为null |
您所在的位置:网站首页 › java数据库查询返回为null › 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 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 |