1. 程式人生 > 程式設計 >mybatis注入Date日期值為null的解決方法

mybatis注入Date日期值為null的解決方法

在今天的一次程式碼編寫中,突然遇到了一個奇怪的問題,在使用mybatis進行Date型別插入時,可以很順利的就插入進資料庫中了,可是當我想從mysql中取出Date型別的值注入java中的Date型別時,發現傳遞過來的值是空的,但是不管是對映還是命名規範都是正確的,就非常的奇怪。

資料庫設計:

mybatis注入Date日期值為null的解決方法

對映類的設計:

@Data
public class BorrowTime {
 //借書時間
 private Date borrowTime;
 //過期時間
 private Date expiredTime;
}

mapper類:

 @Select("SELECT borrow_time,expired_time FROM book_user WHERE bid IN (SELECT bid FROM book_user WHERE uid =#{uid})")
 public List<BorrowTime> findBorrowTime(Integer uid);

查詢出來的值卻是這樣的:

mybatis注入Date日期值為null的解決方法

在網上搜索了很多的資料,試了很多種方法都沒有效果,突然想到mybatis在進行查詢的時候可以自動的配置對應的對映property,於是便去mapper中試了一下:

 @Select("SELECT borrow_time,expired_time FROM book_user WHERE bid IN (SELECT bid FROM book_user WHERE uid =#{uid})")
 @Results({
  @Result(column = "borrow_time",property = "borrowTime"),@Result(column = "expired_time",property = "expiredTime")
 })
 public List<BorrowTime> findBorrowTime(Integer uid);

手動的去將每一個columns和Property對應,然後再去查詢

mybatis注入Date日期值為null的解決方法

終於出現了想要的結果,所以可能是對映欄位的問題還是其他的問題還有待以後查證。

到此這篇關於mybatis注入Date日期值為null的解決方法的文章就介紹到這了,更多相關mybatis注入Date日期值為null內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!