搜尋

首頁  >  問答  >  主體

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?

曾经蜡笔没有小新曾经蜡笔没有小新2715 天前1171

全部回覆(2)我來回復

  • 世界只因有你

    世界只因有你2017-06-23 09:16:41

    問題1. 因為結果集的column和Bean的property不對應,當然就會null.

    問題2. 你可以在sql中用別名,使得column和property對應,這樣就不會出現問題1.

    回覆
    0
  • 漂亮男人

    漂亮男人2017-06-23 09:16:41

    問題一的話,因為資料庫欄位是你底線分隔,bean中的欄位是駝峰命名的,如user_name和userName,導致無法匹配

    如果是透過xml檔案來設定的話,只需要開啟駝峰命名轉換

    yml中 大概是這樣

    mybatis:
      configuration:
        map-underscore-to-camel-case: true

    回覆
    0
  • 取消回覆