當使用mybatis查詢sql語句時,如果期望返回一個int值,但實際返回了一個null值,會導致異常。
以下給出兩種可能的解決方案:
- 修改返回值類型
將查詢方法的返回值類型從int修改為Integer,這樣即使數據庫中沒有數據也不會拋出異常。在業務代碼中,可以檢查返回的integer值是否為null,將其轉換為0或其他默認值。
立即學習“Java免費學習筆記(深入)”;
@select("select max(id) from user") integer maxid();
- 使用數據庫函數
在sql語句中使用數據庫函數,如ifnull或coalesce,來處理null值。例如:
@Select("SELECT max(id) FROM user") @Options(resultType = int.class, useGeneratedKeys = true) int maxIdWithJdbc();
sql語句中使用ifnull(max(id), 0)表達式,這樣如果沒有數據,將返回0,而不是null值。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END