在Mybatis开发时,如果 Bean的属性名与数据库的类名不一致时,CRUD将出现问题。
数据库类名
Bean的属性名:(默认)
调整Bean中的属性名:(测试不一致)
此时原有代码将会报错,可预见的报错为 java文件中所有用到set,与get方法的地方。
不可以预见的报错,在配置文件中。
方法一{测试,有问题}
在配置文件中,将所有的属性值调整成与Bean中的属性名一致。
在插入和更新操作中不存在问题。问题来了!!!
在进行【查询操作时】----->查询所有!
只有username封装到数据库中了,其他字段都没有被封装到数据库中!
原因:MySQL数据库在Windows系统下区分大小写!
所以只有username被封装到了数据库中!
解决办法
1、使用别名
映射配置文件中修改
结果:
优点:执行效率高,因为是在SQL语句的层面上解问题。
2、配置resultMap
缺点:执行效率(多一次解析)较低
优点:开发效率变快,因为所有的查询操作,都可以将resultType返回结果集改成resultMap,后续改造很便 利。如果使用第一种给 SQL 列表 起 别名,SQL语句改造量比较大。