java - spring boot 集成mybatis 注解版查詢
問題描述
-spring boot 集成 mybatis 使用注解實現 spring boot 和 mybatis已經正常集成,在使用查詢時使用的是注解,(項目沒有任何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);}
這種方式是不知道為什么,只有幾個屬性會填充值,其他屬性查詢出來的結果都為null
但是我如果寫了
@Results({ @Result(column = 'user_id',property = 'userId'), @Result(column = 'username',property = 'username'), @Result(column = 'pass',property = 'pass'), @Result(column = 'phone_number',property = 'phoneNumber')})
就會完全正確,每個屬性都有值問題1: 為什么會出現有的屬性有值,有的屬性沒值?問題2:我不能每個查詢語句都這么寫,這樣會有很多的重復的@Result部分,有沒有注解將其在內部進行對應關系實現,不需要每次都寫@ Result?
問題解答
回答1:問題1. 因為結果集的column和Bean的property不對應,當然就會null.
問題2. 你可以在sql中用別名,使得column和property對應,這樣就不會出現問題1.
回答2:問題一的話,因為數據庫字段是你下劃線分隔,bean中的字段是駝峰命名的,如user_name和userName,導致無法匹配
如果是通過xml文件來配置的話,只需要開啟駝峰命名轉換
<setting name='mapUnderscoreToCamelCase' value='true'/>
yml中 大概是這樣
mybatis: configuration: map-underscore-to-camel-case: true
相關文章:
1. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????2. 在應用配置文件 app.php 中找不到’route_check_cache’配置項3. html按鍵開關如何提交我想需要的值到數據庫4. objective-c - 自定義導航條為類似美團的搜索欄樣式5. ios - vue-cli開發項目webstrom會在stylus樣式報錯,飆紅,請大神幫忙6. html5 - 用Egret寫的小游戲,怎么分享到微信呢?7. css - BEM 中塊(Block)有木有什么標準 何時決定一個部分提取為塊而不是其父級的元素呢(Element)?~8. css3 - 怎么感覺用 rem 開發的不多啊9. css - width設置為100%之后列表無法居中10. python - 在pyqt中做微信的機器人,要在表格中顯示微信好友的名字,卻顯示不出來,怎么解決?
