-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
?
世界只因有你2017-06-23 09:16:41
問題1. 因為結果集的column和Bean的property不對應,當然就會null.
問題2. 你可以在sql中用別名,使得column和property對應,這樣就不會出現問題1.
漂亮男人2017-06-23 09:16:41
問題一的話,因為資料庫欄位是你底線分隔,bean中的欄位是駝峰命名的,如user_name和userName,導致無法匹配
如果是透過xml檔案來設定的話,只需要開啟駝峰命名轉換
yml中 大概是這樣
mybatis:
configuration:
map-underscore-to-camel-case: true