JdbcTemplate查詢結果為map時如何處理

2021-09-26 08:45:50 字數 1559 閱讀 5251

jdbctemplate做為一種常用的和資料庫互動的方式,用起來很方便。但是當查詢結果為map時要求查詢的結果有且僅有一條資料。接下來我們看看原始碼到底是如何處理的。

重點看第三個截圖,如何處理查詢結果的,如果查詢結果為空,則throw new emptyresultdataacces***ception(1);,如果結果大於1條,則throw new incorrectresultsizedataacces***ception(1, results.size());

我們看一下這兩個異常,發現emptyresultdataacces***ceptionincorrectresultsizedataacces***ception的乙個子類。

當丟擲這個異常後,我們在控制台上看到的就是下面這個方法列印的語句。

那麼,如何在dao層該如何處理呢,因為我們會在service中處理事務,所有會將dao層的異常拋到service,但是查詢map為空時是合理的,所以我們一般會捕獲emptyresultdataacces***ception,map為多條資料時我們認為不合理,一般會丟擲去 ,接下來我們看看寫的**,一般情況下我們只捕獲emptyresultdataacces***ception,返回null。incorrectresultsizedataacces***ception異常我們不進行捕獲,會直接丟擲處理後返回給前端頁面。

public map

querydetail

(string id)

throws exception );

}catch

(emptyresultdataacces***ception e)

catch

(incorrectresultsizedataacces***ception e)

}

一般我們這樣寫即可處理業務需求,在實際開發中應根據具體業務進行處理。

public map

querydetail

(string id)

throws exception );

}catch

(emptyresultdataacces***ception e)

}

使用 JdbcTemplate 查詢及更新資料庫

通過對 jdbctemplate 源 的研讀,可以看到,在 jdbctemplate 提供了很多用來查詢的數 據庫,比如 queryformap queryforlong queryforint queryforlist 等等。這裡只是簡單的進行示例說明,使用 queryforlist 查詢的示例 ...

python mysqldb 查詢返回字典結構

mysqldb預設查詢結果都是返回tuple,輸出時候不是很方便,必須按照0,1這樣讀取,無意中在網上找到簡單的修改方法,就是傳遞乙個cursors.dictcursor就行。預設程式 import mysqldb db mysqldb.connect host localhost user roo...

spring教程 JdbcTemplate詳解

jdbctemplate模板與dbutils工具模擬較類似.jdbc org.springframework.jdbc.core.jdbctemplate hibernate3.0 org.springframework.orm.hibernate3.hibernatetemplate ibatis...