java - spring boot 集成mybatis 注解版查詢
問(wèn)題描述
-spring boot 集成 mybatis 使用注解實(shí)現(xiàn) spring boot 和 mybatis已經(jīng)正常集成,在使用查詢時(shí)使用的是注解,(項(xiàng)目沒(méi)有任何XML文件)
@Mapper@Table(name = 't_user')public interface UserMapper { @Select('select * from t_user where user_id = #{id}') public User findUserById(@Param('id') String id);}
這種方式是不知道為什么,只有幾個(gè)屬性會(huì)填充值,其他屬性查詢出來(lái)的結(jié)果都為null 
但是我如果寫(xiě)了
@Results({ @Result(column = 'user_id',property = 'userId'), @Result(column = 'username',property = 'username'), @Result(column = 'pass',property = 'pass'), @Result(column = 'phone_number',property = 'phoneNumber')})
就會(huì)完全正確,每個(gè)屬性都有值問(wèn)題1: 為什么會(huì)出現(xiàn)有的屬性有值,有的屬性沒(méi)值?問(wèn)題2:我不能每個(gè)查詢語(yǔ)句都這么寫(xiě),這樣會(huì)有很多的重復(fù)的@Result部分,有沒(méi)有注解將其在內(nèi)部進(jìn)行對(duì)應(yīng)關(guān)系實(shí)現(xiàn),不需要每次都寫(xiě)@ Result?
問(wèn)題解答
回答1:問(wèn)題1. 因?yàn)榻Y(jié)果集的column和Bean的property不對(duì)應(yīng),當(dāng)然就會(huì)null.
問(wèn)題2. 你可以在sql中用別名,使得column和property對(duì)應(yīng),這樣就不會(huì)出現(xiàn)問(wèn)題1.
回答2:問(wèn)題一的話,因?yàn)閿?shù)據(jù)庫(kù)字段是你下劃線分隔,bean中的字段是駝峰命名的,如user_name和userName,導(dǎo)致無(wú)法匹配
如果是通過(guò)xml文件來(lái)配置的話,只需要開(kāi)啟駝峰命名轉(zhuǎn)換
<setting name='mapUnderscoreToCamelCase' value='true'/>
yml中 大概是這樣
mybatis: configuration: map-underscore-to-camel-case: true
相關(guān)文章:
1. node.js - nodejs+express+vue2. javascript - 我的站點(diǎn)貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?3. java - web端百度網(wǎng)盤(pán)的一個(gè)操作為什么要分兩次請(qǐng)求服務(wù)器, 有什么好處嗎4. 數(shù)據(jù)庫(kù) - Mysql的存儲(chǔ)過(guò)程真的是個(gè)坑!求助下面的存儲(chǔ)過(guò)程哪里錯(cuò)啦,實(shí)在是找不到哪里的問(wèn)題了。5. javascript - 如何獲取未來(lái)元素的父元素在頁(yè)面中所有相同元素中是第幾個(gè)?6. python - 如何把152753這個(gè)字符串轉(zhuǎn)變成時(shí)間格式15:27:537. 使用mysql命令行連接遠(yuǎn)程數(shù)據(jù)庫(kù)host跳轉(zhuǎn)8. javascript - onclick事件點(diǎn)擊不起作用9. javascript - webpack-dev-server和webpack沖突嗎10. python 字符串匹配問(wèn)題

網(wǎng)公網(wǎng)安備