MyBatis查询时属性名和字段名不一致问题的解决方法
作者:weixin_44953227 发布时间:2023-10-23 16:56:36
标签:mybatis,查询,属性名
问题
当我们数据库中的字段和实体类中的字段不一致的时候,查询会出问题
数据库字段是 pwd
id name pwd
1 张三 123456
2 李四 123456
3 王五 123456
4 赵六 123456
实体类字段是 password
public class User {
private int id;
private String name;
private String password;
}
查出来结果发现, password 是 null
User{id=1, name='张三', password='null'}
User{id=2, name='李四', password='null'}
User{id=3, name='王五', password='null'}
User{id=4, name='赵六', password='null'}
原因是类型处理器
select * from user
// 类型处理器:我们查询 select * 实际是查询 select id,name,pwd
select id,name,pwd from user
解决办法
resultMap:结果集映射
sql起别名
select id,name,pwd as password from user
解决方案:resultMap
结果集映射:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps
resultMap 元素是 MyBatis 中最重要最强大的元素
ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了
我们只需要在Mapper.xml 中加入结果集映射即可,且只加需要映射的字段即可
<mapper namespace="com.pro.dao.UserMapper">
<!--id: 下面select语句中resultMap绑定的(标识符/名称), type: 我们的实体类-->
<resultMap id="UserMap" type="User">
<!--column: 对应数据库中的字段, property: 对应实体类中的属性-->
<result column="pwd" property="password"/>
</resultMap>
<select id="getUserList" resultMap="UserMap">
select * from users
</select>
</mapper>
总结
来源:https://blog.csdn.net/weixin_44953227/article/details/112648481
0
投稿
猜你喜欢
- 本文主要介绍了SpringBoot配置文件中的明文密码如何加密保存,读取以及对于自定义的加密算法加密的参数如何保存和读取。背景为了安全的需要
- Java IO BufferedInputStream概要:BufferedInputStream是缓冲输入流,继承于Filte
- Java 开发语言中实现HTTP请求的方法主要有两种:一种是JAVA的标准类HttpUrlConnection,比较原生的实现方法;另一种是
- 前言作为大数据家族中的重要一员,在大数据以及海量数据存储方面,hbase具有重要的地方,本篇将从java对hbase的操作上,进行详细的说明
- Java语言是SUN(Stanford University Network,斯坦福大学网络公司)公司1995年推出的一门高级编程语言,起初
- BeanPostProcessor 的接口定义,可以实现提供自己的实例化逻辑,依赖解析逻辑等,也可以以后在Spring容器实例化完毕,配置和
- 前言大家好,我是bigsai,在数据结构与算法中,二叉树无论是考研、笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点
- 一个非常简单的登录权限 * ,具体代码如下:以下代码是继承OncePerRequestFilter实现登录过滤的代码:/** * * @
- 邮件绑定功能【需求】1、 用户注册时,输入邮箱2、 通过Javamail技术,向用户邮箱发送一封祝贺邮件1、javamail发送邮件1.1、
- BitArray的基础可以看菜鸟编程BitArray 类管理一个紧凑型的位值数组,它使用布尔值来表示,其中 true 表示位是开启的(1),
- 初学线程时,总是将 run 方法和 start 方法搞混,虽然二者是完全不同的两个方法,但刚开始使用时很难分清,原因就是因为初次使用时效果貌
- 1.微信配置信息 global.properties2.方法wxpay用于生成预支付订单信息方法notifyWeiXinPay用于微信支付成
- 背景众所周知,所有被打开的系统资源,比如流、文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重
- 一、Map接口继承树Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x)A.HashMap:作为Map
- 前言:mybatisplus 可以说是对mybatis更好的拓展,一些简单的增删改查的操作已经被作者实现,我们只需引用即可。1.数据库建表这
- 一、整体设计1、需求分析池化技术是计算机中的一种设计模式,内存池是常见的池化技术之一,它能够有效的提高内存的申请和释放效率以及内存碎片等问题
- 前言嵌套查询的实现原理为两次查询,比如产品表为主表,图片表为从表通过product_id字段与产品表id字段关联实现一对多,嵌套查询 首先查
- A:首先先看下一个简单的面试题斐波那契数列计算数组{1,1,2,3,5,8.......} 第30位值规律:1 1 从第三项开始,每一项都是
- 文件目录结构文件目录结构很重要,特别注意的是rule文件要放在主启动类上一级位置,才能够扫描。写pom<dependencies>
- Java实现PC微信扫码支付做一个电商网站支付功能必不可少,那我们今天就来盘一盘微信支付。微信支付官方网站业务流程:开发指引文档支付服务开发