实体类
| public User(int id, String name, String password) { |
| this.id = id; |
| this.name = name; |
| this.password = password; |
| } |
数据库

我们发现这里实体类的属性和数据库的字段不对应(password和pwd)
运行结果
| User{id=3, name='李四', password='null'} |
| User{id=4, name='李三', password='null'} |
这里的password是空的。原因是MyBatis自带一个类型构造器,会在‘背地里’创建与数据库相对应的实体类属性,所以password没有对应的数据库字段
解决方法
1,给pwd取别名为password
| <select id="getUserByID2" resultType="user" parameterType="Map"> |
| select id,name,pwd as password from user where name like "%" #{name} "%" |
| </select> |
运行结果
| User{id=3, name='李四', password='1231233'} |
| User{id=4, name='李三', password='123123'} |
2,应用resultMap
| <resultMap id="userMap" type="User"> |
| <result column="pwd" property="password"></result> |
| </resultMap> |
| <select id="getUserByID2" resultMap="userMap"> |
| select * from user where name like "%" #{name} "%" |
| </select> |
注意这里的 type="User",我取了别名,如果没有取别名,要把类的绝对路径写全
运行结果
| User{id=3, name='李四', password='1231233'} |
| User{id=4, name='李三', password='123123'} |
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术