成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡單介紹Spring JDBC模板

開發 后端
本文將介紹Spring JDBC模板,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提供一個抽象異常層,把冗長并且易出錯誤的異常處理從應用程序代碼移到由框架來實現。框架負責所有的異常處理;應用程序代碼則能夠專注于使用適當的SQL提取結果。

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

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

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

四.Spring JDBC模板示例

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

接口:

  1. importjava.util.List;  
  2. publicinterfaceTasksDAO{  
  3. publicListgetTasksNames();  

接口實現類:

  1. importjava.sql.ResultSet;  
  2. importjava.sql.SQLException;  
  3. importjava.util.Iterator;  
  4. importjava.util.List;  
  5. importjavax.sql.DataSource;  
  6. importorg.springframework.context.ApplicationContext;  
  7. importorg.springframework.context.support.ClassPathXmlApplicationContext;  
  8. importorg.springframework.jdbc.core.JdbcTemplate;  
  9. importorg.springframework.jdbc.core.RowMapper;  
  10. importorg.springframework.jdbc.core.support.JdbcDaoSupport;  
  11. /**  
  12. *wangzyspringjdbcTemplate  
  13. *@authorAdministrator  
  14. *  
  15. */  
  16.  
  17. publicclassTasksJdbcDAOextendsJdbcDaoSupportimplementsTasksDAO  
  18. {  
  19.  
  20. publicListgetTasksNames(){  
  21.  
  22. JdbcTemplatejt=getJdbcTemplate();//獲取Spring JDBC模板  
  23. returnjt.query("selectUSERNAME,PASSWORDfromuserinfo",newTasksRowMapper());  
  24. }  
  25. //繼承了sping,封裝好的接口RowMapper  
  26. classTasksRowMapperimplementsRowMapper{  
  27. publicObjectmapRow(ResultSetrs,intindex)throwsSQLException{  
  28. returnrs.getString(1);}//獲取列數  
  29. }  
  30. publicstaticvoidmain(String[]args)throwsException{  
  31. ApplicationContextctx=newClassPathXmlApplicationContext("applicationContext.xml");//獲取sping配置文件地址  
  32. DataSourceds=(DataSource)ctx.getBean("dataSourceDBDirect");//獲取數據源  
  33. TasksJdbcDAOtaskDao=newTasksJdbcDAO();  
  34.  
  35. taskDao.setDataSource(ds);  
  36. IteratortskIter=taskDao.getTasksNames().iterator();//提取數據,循環遍歷  
  37. while(tskIter.hasNext()){  
  38. System.out.println(tskIter.next().toString());  
  39. }  
  40. }  

appliactiong:(src下)

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

【編輯推薦】

  1. 談談優化JDBC數據庫編程
  2. 實例說明對MySQL的JDBC連接設置
  3. 淺談如何利用JSP網頁中JDBC代碼連接MySQL
  4. 淺談JDBC代碼如何重復使用
  5. 如何進行Jython數據庫插入(JDBC)
責任編輯:彭凡 來源: CSDN
相關推薦

2009-06-17 17:59:01

介紹Spring

2009-06-18 13:18:04

Spring IDE

2009-06-18 10:27:42

Spring Time

2009-06-30 16:57:42

Spring事務管理

2009-07-17 13:54:51

JDBC存儲過程

2011-01-21 10:40:52

Sendmail

2011-02-24 14:40:47

Proftpd

2011-01-21 16:49:15

Zimbra

2011-02-23 13:28:12

2011-03-04 13:19:09

VSFTP介紹

2011-04-01 09:39:17

zabbix

2011-02-22 16:38:03

Konqueror

2011-01-21 18:08:22

Qmail

2011-03-29 09:14:37

2009-06-19 13:37:53

Spring JDBC

2011-07-22 17:22:20

Spring

2009-06-18 15:14:53

Spring osgi

2009-09-08 10:50:20

2009-10-10 11:48:56

VB ConsoleP

2010-06-12 14:44:54

BGP協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美黑人激情 | 福利社午夜影院 | 国产精品久久国产精品久久 | 国产精品成人一区二区 | 日本不卡一二三 | 日日操操 | 中文字幕日韩欧美 | 久久国产亚洲 | 精品欧美一区二区精品久久 | 国产传媒视频在线观看 | 国产农村一级国产农村 | 日本淫视频| 一级黄色片在线看 | 亚洲国产精品一区二区www | 欧美一级片在线 | 91精品国产色综合久久不卡98 | 亚洲欧美激情精品一区二区 | 亚洲视频在线观看 | 红桃视频一区二区三区免费 | 日本h片在线观看 | 精品久久久久久亚洲综合网站 | 欧美一区免费 | 久久久久久久久久久久亚洲 | 久久精品日产第一区二区三区 | 国产成人在线观看免费 | 欧美国产日韩成人 | 午夜精品久久久久久久99黑人 | 在线观看中文字幕一区二区 | 久久久久久免费毛片精品 | 久久亚洲精品国产精品紫薇 | 91在线视频观看免费 | 亚洲精品日韩精品 | 国产成人免费在线 | 国产精品免费在线 | 欧美亚州综合 | 日本黄色片免费在线观看 | 欧美日韩一区在线观看 | 91综合网| eeuss国产一区二区三区四区 | 91成人精品视频 | 久久久久久免费观看 |