溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring JDBC的模板是怎么樣的

發布時間:2021-10-27 09:43:01 來源:億速云 閱讀:197 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關Spring JDBC的模板是怎么樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Spring所提供的JDBC抽象框架由四個不同的包組成:

◆核心包包含JdbcTemplate。這個類是一個基礎類之一-由Spring框架的JDBC支持提供并使用。

◆數據源包是實現單元測試數據庫存取代碼的重要的一部分。它的DriverManagerDataSource能夠以一種類似于你已經習慣于JDBC中的用法:只要創建一個新的DriverManagerDataSource并且調用setter方法來設置DriverClassName,Url,Username和Password。

◆對象包中包含類,用于描述RDBMS查詢、更改和存儲過程為線程安全的、可重用的對象。

◆支持包-你可以從這里找到SQLException翻譯功能和一些工具類。

1)Spring JDBC模板設計模式

Spring JDBC實現模板設計模式,這意味著,代碼中的重復的復雜的任務部分是在模板類中實現的。這種方式簡化了JDBC的使用,因為由它來處理資源的創建和釋放。這有助于避免普通錯誤,例如忘記關閉連接等。它執行核心JDBC工作流任務,如語句創建和執行,而讓應用程序代碼來提供SQL并且提取結果。

2)Spring JDBC異常處理

Spring框架特別強調在傳統型JDBC編程中所面臨的與下列方案有關的問題:

◆Spring提供一個抽象異常層,把冗長并且易出錯誤的異常處理從應用程序代碼移到由框架來實現??蚣茇撠熕械漠惓L幚?應用程序代碼則能夠專注于使用適當的SQL提取結果。

◆Spring提供了一個重要的異常類層次,以便于你的應用程序代碼中可以使用恰當的SQLException子類。

借助于一個抽象異常層,我們成功地實現了數據庫獨立性而不必改變異常處理。例如,如果你把你的數據庫從PostgreSQL改變為Oracle,那么你不必把異常處理從OracleDataException改變到PostgresDataException。Spring能夠捕獲應用程序服務器特定的異常并拋出一個Spring數據異常。

當處理異常時,Spring檢查來自一個數據庫連接的元數據可用性以決定數據庫產品。它使用這種知識來把SQLException映射到其自己異常層次中的具體的異常上。因此,我們不需要擔心專門性的SQL狀態或錯誤代碼問題;Spring的數據存取異常不是JDBC特定的,因此你的DAO不必綁定到JDBC(由于其可能拋出的異常)。

四.Spring JDBC模板示例

在下面兩個列表中,我們將使用前面用傳統型JDBC實現的業務邏輯為例并且展示使用Spring JDBC版本是多么容易。首先,我們從一個簡單的接口開始。

接口:

importjava.util.List;  publicinterfaceTasksDAO{  publicListgetTasksNames();  }

接口實現類:

importjava.sql.ResultSet;  importjava.sql.SQLException;  importjava.util.Iterator;  importjava.util.List;  importjavax.sql.DataSource;  importorg.springframework.context.ApplicationContext;  importorg.springframework.context.support.ClassPathXmlApplicationContext;  importorg.springframework.jdbc.core.JdbcTemplate;  importorg.springframework.jdbc.core.RowMapper;  importorg.springframework.jdbc.core.support.JdbcDaoSupport;  /**  *wangzyspringjdbcTemplate  *@authorAdministrator  *  */   publicclassTasksJdbcDAOextendsJdbcDaoSupportimplementsTasksDAO  {   publicListgetTasksNames(){   JdbcTemplatejt=getJdbcTemplate();//獲取Spring JDBC模板  returnjt.query("selectUSERNAME,PASSWORDfromuserinfo",newTasksRowMapper());  }  //繼承了sping,封裝好的接口RowMapper  classTasksRowMapperimplementsRowMapper{  publicObjectmapRow(ResultSetrs,intindex)throwsSQLException{  returnrs.getString(1);}//獲取列數  }  publicstaticvoidmain(String[]args)throwsException{  ApplicationContextctx=newClassPathXmlApplicationContext("applicationContext.xml");//獲取sping配置文件地址  DataSourceds=(DataSource)ctx.getBean("dataSourceDBDirect");//獲取數據源  TasksJdbcDAOtaskDao=newTasksJdbcDAO();   taskDao.setDataSource(ds);  IteratortskIter=taskDao.getTasksNames().iterator();//提取數據,循環遍歷  while(tskIter.hasNext()){  System.out.println(tskIter.next().toString());  }  }  }

appliactiong:(src下)

<beanidbeanid="dataSourceDBDirect"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <propertynamepropertyname="driverClassName"value="com.mysql.jdbc.Driver">property> <propertynamepropertyname="url"value="jdbc:mysql://localhost:3306/userinfo">property> <propertynamepropertyname="username"value="root">property> <propertynamepropertyname="password"value="root">property> bean>

關于Spring JDBC的模板是怎么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女