时间:2021-05-20
当我们数据库中的字段和实体类中的字段不一致的时候,查询会出问题
数据库字段是 pwd
id name pwd1 张三 1234562 李四 1234563 王五 1234564 赵六 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,pwdselect id,name,pwd from user解决办法
结果集映射:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps
我们只需要在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>到此这篇关于MyBatis查询时属性名和字段名不一致问题解决的文章就介绍到这了,更多相关MyBatis查询时属性名和字段名不一致内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在使用mybatis或者mybatis-plus时候,有些时候会出现数据库的字段名和实体类的字段名不一致的情况,如果运行那么这个字段就会无法进行自动映射而报错。
1、前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装;前端提交的到后台的数据应该是json字符串类型,而前端没有将对象转化为字符串类型
--查询数据库里所有表名和字段名的语句--SQL查询所有表名:SELECTNAMEFROMSYSOBJECTSWHERETYPE='U'SELECT*FROMI
在项目开发中,我们经常会遇到表中的字段名和表对应实体类的属性名称不一定都是完全相同的情况,下面小编给大家演示一下这种情况下的如何解决字段名与实体类属性名不相同的
本文是小编给大家带来的mybatis中实体类和表映射问题的知识,学习本教程能够快速帮助我们解决字段名与实体类属性名不相同的冲突问题,需要的朋友一起看看吧!一、准