JdbcTemplate

JdbcTemplate



1. 基本簡介

  JdbcTemplate是位於 org.springframework.jdbc.core 包中的類,依賴於 spring-jdbc ,是 Spring 框架對 JDBC 的簡單封裝,可以提供一個 JdbcTemplate 對象簡化 JDBC 的相關操作。還需要注意的是,在創建 JdbcTemplate 對象時需要傳入一個 DataSource 對象。

JdbcTemplate 的 API文檔

JdbcTemplate 的作用:

  • 簡化了 JDBC 的使用,有助於避免常見錯誤。
  • 它已經完成核心的JDBC工作流程,只需要我們提供 SQL 語句就可以給出結果。
  • 執行SQL查詢或更新時,可以捕獲JDBC異常,並將其轉換爲org.springframework.dao程序包中定義的更大的異常層次結構 。


2. 部分成員方法及描述

  成員方法在API文檔中都有詳細的介紹,這裏簡單介紹幾個查詢相關的方法。

方法名 描述
update() 發出單個SQL更新操作,執行DML語句,增、刪、改操作
query() 使用準備好的語句進行查詢
queryForList() 給定靜態SQL,對結果列表執行查詢。
queryForMap() 給定靜態SQL,對結果圖執行查詢。
queryForObject() 給定靜態SQL,對結果對象執行查詢。

3. 應用代碼片段展示

// 使用這些方法之前要創建JdbcTemplate對象
JdbcTemplate jt = new JdbcTemplate(JDBCUtils.getDataSource());

// 1. 向表中添加一條記錄
String sql = "insert into emp(ename,dept_id) values(?,?)";
jt.update(sql,"劉備","10");

// 2. 刪除表中一條記錄
String sql = "delete from emp where id = 1015";
jt.update(sql);

// 3. 修改表中指定列的值
String sql = "update emp set salary = 10000 where id =1001";
jt.update(sql);


// 4. 查詢id爲1001的記錄,將其封裝爲Map集合.
// 查詢結果會將列封裝爲key,將值封裝爲value,且只能封裝一條記錄。
String sql = "select * from emp where id = ?";
Map<String,Object> map = jt.queryForMap(sql,1001);
System.out.println(map);

// 5. 查詢表所有記錄,將其封裝爲list集合
// 先將每條記錄封裝爲一個Map集合,再講Map集合裝載到List集合
String sql = "select * from emp";
List<Map<String,Object>> list = jt.queryForList(sql);
for (Map<String, Object> map : list) {
    System.out.println(map);

}

// 6. 查詢所有記錄,將其封裝爲對象的list集合
// RowMapper,一般我們使用BeanPropertyRowMapper實現類,可以完成數據到JavaBean的自動封裝。
String sql = "select * from emp";
List<Emp> list = jt.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class));
for (Emp emp : list) {
    System.out.println(emp);
}

// 7. 查詢總記錄數。
// queryForObject:一般用於聚合函數的查詢
String sql = "select count(id) from emp";
Long total = jt.queryForObject(sql, Long.class);
System.out.println(total);

注意:

  • 以上代碼只是應用片段,需要結合具體環境使用。
  • JDBCUtils 是對 Druid 連接池的一個工具抽取類,用於獲取 DataSource。實現方式看 C3P0&Drui的2.4.4
  • 由於剛剛初學,對 JdbcTemplate 的認識還不夠深刻,相關demo以後再做。推薦大家去看 黑馬程序員的講解


時間:2019年11月1日17:31:30


發佈了79 篇原創文章 · 獲贊 43 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章