記錄筆記。
spring的jdbc模組負責資料庫資料資源管理和錯誤處理。
一.Spring JdbcTemplate的解析
spring框架提供了JdbcTemplate類,該類是核心類。
JdbcTemplate的直接父類是JdbcAccessor,該類為子類提供了一些訪問資料庫時使用的公共屬性,比如DataSource和SQLExceptionTranslator。
而JdbcOperations則定義了操作。
二.Spring JDBC的配置
主要由四個包組成。
如果想要使用JDBC,必須在xml檔案裡面進行配置,注意觀察。
配置資料來源(連線資料庫),配置JDBC模板,配置注入類。
示例配置檔案(依據自己的情況修改資料庫資訊,MySQL的預設埠是3036)
三.Spring JdbcTemplate的常用方法
execute()
execute()能夠完成執行SQL語句的功能,示例是建立。
選擇資料庫,配置xml檔案,測試類(啟動類)加入execute語句(還是spring要使用的三部曲,只有獲得例項才可以呼叫主動類的方法,這裡的主動類是JDBC模板提供的)
(這裡除了spring的基礎包之外還需要加入的包是:mysql-connector , spring-jdbc,spring-tx。
啟動類。
(專案執行我記得沒有錯誤)
可以去test->java裡面新建一個java檔案當作測試類,測試類如下,註解如果報錯那麼就alt+Enter快速載入
update()
update()方法有四種,根據引數不同各自分類。
這裡也是一樣的,主要類(JDBC,自定義類),xml配置,啟動類配置。
我們上一條是Create指令,直接輸入語句就可以了。而下面的示例,我們選擇了Insert INTO語句,除了語句,我們還需要資料,所以我們需要一堆數值,使用類封裝,也就是說我們需要一個Account類,所以主要類又加入了Account類。
主要類:
(示例需要返回受到影響的行數,也就是說在update方法的類中,我們需要獲得Account的例項的資料,所以我們需要加入getter和setter方法,可以的話連toString也可以加進去,使用Alt+insert快捷鍵選擇,這裡省略掉了這些方法。)
建立介面。(update方法是修改,增刪改查,還需要一個操作主要類)
操作主要類。
注意看這幾個方法是怎麼實現的。
public class AccountDaoImpl implements AccountDao{ //需要使用update方法,所以還是要宣告JdbcTemplate,啟動類的不用,因為啟動類直接獲得了JdbcTemplate的Bean例項了。 private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } //新增賬戶 public int addAccount(Account account){ //定義sql String sql = "insert into account(username , balance) value(?,?)"; //定義陣列來儲存sql語句中的引數 Object[] obj = new Object[]{ account.getUsername(), account.getBalance() }; //執行新增操作,返回的是受SQL語句影響的記錄條數 int num = this.jdbcTemplate.update(sql , obj); return num; } //更新賬戶 public int updateAccount(Account account){ //定義SQL String sql = "update account set username = ?,balance = ? where id = ?"; //定義陣列來儲存SQL語句中的引數 Object[] params = new Object[]{ account.getUsername(), account.getBalance(), account.getId() }; //執行更新操作 int num = this.jdbcTemplate.update(sql,params); return num; } //刪除賬戶 public int deleteAccount(int id){ //定義SQL String sql = "delete from account where id = ?"; int num = this.jdbcTemplate.update(sql,id); return num; }
配置xml的主要類相關Bean。
(注意雖然Account類在我的理解中是主要類,但是Account可以不用在測試類用Bean,就普通地弄,我們使用Bean只是為了使用對應類的方法而已,set,get方法什麼的可以不放在Bean裡面)
在測試類中三部曲。
剩餘方法的實現是類似。
query()
示例如下:
主要類。
注意方法實現。
測試類: