關於jdbcTemplate方法的記錄

2021-08-20 21:17:16 字數 1552 閱讀 4815

最近的專案中由於只進行查詢,所以使用了jdbctemplate來直接操作sql進行持久層的操作,初次接觸jdbctemplate,從最開始的什麼都不知道到現在基本方法都大致知道什麼意思,特此記錄一下

jdbctemplate方法常用的大約有這個幾個

1. queryforint()/queryforlong()

2. queryforobject()

3. queryforlist()

4. queryformap()

5. query()

1. queryforint()/queryforlong()

使用queryforint()主要是為了獲取資料庫中記錄總數,獲取指定條件的記錄數等,不需要對應列名,只需要返回乙個資料即可.queryforlong()是同理的.

如果你想查詢到結果並命名的話,你可以使用queryformap(),查詢到的值更改列名為別名,然後使用map.get("別名")來獲取.

2. queryforobject()

其實本質上queryforobject()和queryforint()是一直的,只不過可以返回乙個非int的值,比如你查詢指定id的物件的某乙個屬性,可以使用object進行接收,而不能使用int來接收.

(6-25更新)舉個例子:

string sql = "select name from user where id = ?";

return jdbctemplate.queryforobject(sql,string.class,id);

//需要注意的是:第乙個引數:sql語句,第二個引數:你查詢的結果的返回值型別,第三個引數是:你傳入的引數

3.  queryforlist()

在我們需要得到乙個資料集合的時候,我們通常使用queryforlist()進行。返回的結果是乙個list結構的集合。其中乙個map代表了一行資料,使用列名作為key,使用值作為value。

並且queryforlist()會預設自動封裝。不需要手動進行資料封裝。

4. queryformap()

queryformap()是查詢一條資料的時候使用的封裝。將列名作為key,值作為value。封裝成乙個map返回結果。

5. query()

query()進行查詢的時候,必須自行對結果集進行取出並封裝。

缺點是:你需要手動進行封裝資料。

**如下:

stringbuilder sql = new stringbuilder();

listparamlist = new arraylist<>();

if (!stringutils.isempty(id))

return this.jdbctemplate.query(sql.tostring(),

(rs, rownum) -> , paramlist.toarray());

總的來說,jdbctemplate對於查詢來說,如果你對sql比較精通,使用起來非常方便,靈活。

170830 關於JdbcTemplate的知識點

1.spring提供的乙個運算元據庫的技術jdbctemplate,是對jdbc的封裝。語法風格非常接近dbutils。jdbctemplate可以直接運算元據庫,加快效率,而且學這個jdbctemplate也是為宣告式事務做準備,畢竟要對資料庫中的資料進行操縱!jdbctemplate中並沒有提供...

spring教程 JdbcTemplate詳解

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

JDBCTemplate 事務控制

專案場景 批量匯入,前端解析excel資料,然後批量傳入到後端,後端根據資料進行解析,然後在表和關聯表進行操作。當對一行資料操作時,如果有錯誤資訊則捕獲異常,則不插入該條資訊,繼續走下。excel單行資料出錯時,要進行回滾,不僅要在單錶中回滾,還要在關聯表中回滾。問題 如何控制事務?如果單錶插入資料...