解決數(shù)據(jù)庫有數(shù)據(jù)但查詢出來的值為Null問題
原因
在使用逆向工程后會為我們自動生成實體類和映射文件
但是生成的實體類中某些屬性名和數(shù)據(jù)庫表中的屬性名會發(fā)生改變
如下圖:
但是逆向工程通過使用resultMap 把數(shù)據(jù)庫的屬性名和實體類的屬性名進行了綁定
所以就只要我們sql查詢的時候返回值類型不為resultMap,就會返回null
解決方案
方案1
把sql語句的返回值類型改為resultMap
方案2
如果嫌配置 resultMap
麻煩的話可以給數(shù)據(jù)庫的字段起一個別名。
但是起的別名一定要和實體類的屬性名對應上。
SELECT DISTINCT a.id, a.name, a.front_url as frontUrl, a.back_url as backUrl, a.parent_id as parentId from ums_role_resource as b
總結
只有當數(shù)據(jù)庫表中的字段名稱與實體類中的屬性名稱完全相同,才能直接使用resultType返回類型,后面跟上該實體類的名稱。
否則一定需要用 resultMap
進行屬性映射,或者給出現(xiàn)變化的字段 起別名
否則得到的數(shù)據(jù)一直沒有匹配的實體類與之對應,返回的結果也自然為空
當然了,以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。