Mybatis实体类属性名与数据库类名不对应的两种解决方法
在Mybatis開發(fā)時(shí),如果 Bean的屬性名與數(shù)據(jù)庫的類名不一致時(shí),CRUD將出現(xiàn)問題。
數(shù)據(jù)庫類名
Bean的屬性名:(默認(rèn))
調(diào)整Bean中的屬性名:(測試不一致)
此時(shí)原有代碼將會(huì)報(bào)錯(cuò),可預(yù)見的報(bào)錯(cuò)為 java文件中所有用到set,與get方法的地方。
不可以預(yù)見的報(bào)錯(cuò),在配置文件中。
方法一{測試,有問題}
在配置文件中,將所有的屬性值調(diào)整成與Bean中的屬性名一致。
在插入和更新操作中不存在問題。問題來了!!!
在進(jìn)行【查詢操作時(shí)】----->查詢所有!
只有username封裝到數(shù)據(jù)庫中了,其他字段都沒有被封裝到數(shù)據(jù)庫中!
原因:MySQL數(shù)據(jù)庫在Windows系統(tǒng)下區(qū)分大小寫!
所以只有username被封裝到了數(shù)據(jù)庫中!
解決辦法
1、使用別名
映射配置文件中修改
結(jié)果:
優(yōu)點(diǎn):執(zhí)行效率高,因?yàn)槭窃赟QL語句的層面上解問題。
2、配置resultMap
缺點(diǎn):執(zhí)行效率(多一次解析)較低
優(yōu)點(diǎn):開發(fā)效率變快,因?yàn)樗械牟樵儾僮?#xff0c;都可以將resultType返回結(jié)果集改成resultMap,后續(xù)改造很便 利。如果使用第一種給 SQL 列表 起 別名,SQL語句改造量比較大。
總結(jié)
以上是生活随笔為你收集整理的Mybatis实体类属性名与数据库类名不对应的两种解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 准备配置windows请勿关闭计算机,要
- 下一篇: MySQL 5.5.45+, 5.6.2