在使用普通的 jdbc 資料庫時,就會很麻煩的寫不必要的**來處理異常,開啟和關閉資料庫連線等。
但 spring jdbc 框架負責所有的低層細節,從開始開啟連線,準備和執行 sql 語句,處理異常,處理事務,到最後關閉連線。
所以當從資料庫中獲取資料時,你所做的是定義連線引數,指定要執行的 sql 語句,每次迭代完成所需的工作。
spring jdbc 提供幾種方法和資料庫中相應的不同的類與介面。我將給出使用 jdbctemplate 類框架的經典和最受歡迎的方法。這是管理所有資料庫通訊和異常處理的**框架類。
jdbctemplate 類執行 sql 查詢、更新語句和儲存過程呼叫,執行迭代結果集和提取返回引數值。它也捕獲 jdbc 異常並轉換它們到 org.springframework.dao 包中定義的通用類、更多的資訊、異常層次結構。
jdbctemplate 類的例項是執行緒安全配置的。所以你可以配置 jdbctemplate 的單個例項,然後將這個共享的引用安全地注入到多個 daos 中。
使用 jdbctemplate 類時常見的做法是在你的 spring 配置檔案中配置資料來源,然後共享資料來源 bean 依賴注入到 dao 類中,並在資料來源的設值函式中建立了 jdbctemplate。
使用mysql的客戶端管理軟體,比如:mysql-front,建立資料庫test
:
create database test;
在資料庫 test 中建立乙個資料庫表 student。
create table student(
id int not null auto_increment,
name varchar(20) not null,
age int not null,
primary key (id)
);
現在,我們需要提供乙個資料來源到 jdbctemplate 中,所以它可以配置本身來獲得資料庫訪問。你可以在 xml 檔案中配置資料來源,其中一段**如下所示:
dao 代表常用的資料庫互動的資料訪問物件。daos 提供一種方法來讀取資料並將資料寫入到資料庫中,它們應該通過乙個介面顯示此功能,應用程式的其餘部分將訪問它們。
在 spring 中,資料訪問物件(dao)支援很容易用統一的方法使用資料訪問技術,如 jdbc、hibernate、jpa 或者 jdo。
我們看看如何使用 sql 和 jdbctemplate 物件在資料庫表中執行 crud(建立、讀取、更新和刪除)操作。
查詢乙個整數型別:
string sql = "select count(*) from student";
int rowcount = jdbctemplateobject.queryforint( sql );
查詢乙個 long 型別:
string sql = "select count(*) from student";
long rowcount = jdbctemplateobject.queryforlong( sql );
乙個使用繫結變數的簡單查詢:
string sql = "select age from student where id = ?";
int age = jdbctemplateobject.queryforint(sql, new object);
string sql = "select name from student where id = ?";
string name = jdbctemplateobject.queryforobject(sql, new object, string.class);
string sql = "select * from student where id = ?";
student student = jdbctemplateobject.queryforobject(sql,
public student maprow(resultset rs, int rownum) throws sqlexception
}
string sql = "select * from student";
liststudents = jdbctemplateobject.query(sql,
public student maprow(resultset rs, int rownum) throws sqlexception
}
string sql = "insert into student (name, age) values (?, ?)";
jdbctemplateobject.update( sql, new object );
string sql = "update student set name = ? where id = ?";
jdbctemplateobject.update( sql, new object );
string sql = "delete student where id = ?";
jdbctemplateobject.update( sql, new object );
你可以使用 jdbctemplate 中的 execute(..) 方法來執行任何 sql 語句或 ddl 語句。下面是乙個使用 create 語句建立乙個表的示例:
string sql = "create table student( " +
"id int not null auto_increment, " +
"name varchar(20) not null, " +
"age int not null, " +
"primary key (id));"
jdbctemplateobject.execute( sql );
每天學習一點點,每天進步一點點。 SpringJDBC框架簡介
目錄 在使用普通的 jdbc 資料庫時,就會很麻煩的寫不必要的 來處理異常,開啟和關閉資料庫連線等。但 spring jdbc 框架負責所有的低層細節,從開始開啟連線,準備和執行 sql 語句,處理異常,處理事務,到最後關閉連線。所以當從資料庫中獲取資料時,你所做的是定義連線引數,指定要執行的 sq...
web框架簡介,django簡介
目錄django簡介 建立django專案的方式 django各個檔案的作用 django小白必會三板斧 c s架構 客戶端服務端 b s架構 瀏覽器伺服器 本質 b s架構其實也是c s架構 超文字傳輸協議 規定了客戶端和服務端訊息傳輸的格式 四大特性 1 基於tcp ip協議作用於應用層的協議 ...
Spring JDBC組合開發
使用spring jdbc整合步驟如下 配置資料來源,如 略 配置事務。配置事務時,需要在xml配置檔案中引入用於宣告事務的tx命名空間 見下頁 事務的配置方式有兩種 註解方式和基於xml配置方式。所用jar包 commons dbcp.jar 使用datasource必須 commons pool...