日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
OSGi與SpringDM:使用SpringDataSource

【精選譯文】本文是《你好,OSGi》系列的第九部分。之前已經(jīng)完成了使用Spring DM構(gòu)建簡(jiǎn)單應(yīng)用并導(dǎo)入導(dǎo)出服務(wù)套件的過程,下面將介紹Spring DataSource的使用。顧名思義,Spring DataSource用于完成Spring應(yīng)用程序與數(shù)據(jù)庫直接的聯(lián)絡(luò)。

為平房等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及平房網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、平房網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

編輯推薦:OSGi入門與實(shí)踐全攻略

使用 Spring DataSource

Spring框架的長處之一在于它為處理常見需求提供了一組預(yù)制的bean。在***這個(gè)小節(jié)中,我們將學(xué)習(xí)Spring DM如何允許用戶訪問基于OSGi應(yīng)用程序中的這些預(yù)制bean。

在這個(gè)練習(xí)中,我們將修改 ContactDAO套件,使它連接到一個(gè)RDBMS,來與聯(lián)絡(luò)表互動(dòng)。對(duì)于連接管理,我們將使用Spring DataSource (org.springframework.jdbc.datasource.DriverManagerDataSource) 類。請(qǐng)注意 Spring 的 DataSource 是 org.springframework.bundle.spring.jdbc 服務(wù)套件的一部分。在這個(gè)練習(xí)中,我使用 Apache Derby 來測(cè)試應(yīng)用程序的代碼;你也可以使用你喜歡的數(shù)據(jù)庫。

該練習(xí)的***步是在你的數(shù)據(jù)庫中創(chuàng)建聯(lián)絡(luò)表??梢允褂么a清單 11 中的 DDL 腳本創(chuàng)建這個(gè) CONTACT 表。

代碼清單 11. CONTACT 表的 DDL

 
 
 
 
  1. CREATE TABLE CONTACT(  
  2. CONTACTID int NOT NULL,  
  3. FIRSTNAME varchar(300),  
  4. LASTNAME varchar(300)  
  5. );  

對(duì)于連接管理,我們想使用 Spring 的 DriverManagerDataSource bean。問題在于, DriverManagerDataSource 類是 spring.jdbc 套件的一部分,而后者為了完成其工作需訪問你的 JDBC 驅(qū)動(dòng)程序類。要解決該依賴性,最簡(jiǎn)單的方法是將你的 JDBC 驅(qū)動(dòng)程序 JAR 導(dǎo)入到 spring.jdbc 套件中。

***步,右鍵點(diǎn)擊 org.springframework.bundle.spring.jdbc 套件,然后點(diǎn)擊 New --> Folder。將該文件夾命名為“JARs folder”。

接著,右鍵點(diǎn)擊新創(chuàng)建的 JARs folder,然后點(diǎn)擊 Import --> General --> File System。在 From Directory 下,F(xiàn)ile System 對(duì)話框應(yīng)顯示包含你的 JDBC 驅(qū)動(dòng)程序 JAR 目錄的問題。對(duì)于我,該位置是 C:\software\db-derby-10.2.2.0-bin\lib。 選擇該位置,將在 Select 框中顯示 JAR 列表。選擇 derbyclient.jar(如果你使用的是 Derby)然后單擊完成。Eclipse 將 derbyclient.jar 導(dǎo)入到你的 JARs folder 中。

導(dǎo)入 JDBC 驅(qū)動(dòng)程序 JAR 的***一步是將其添加到你的套件路徑中。為此,在 Plug-in Manifest Editor 編輯器中打開 org.springframework.bundle.spring.jdbc 套件的 MANIFEST.MF 文件。然后切換到 Runtimes 標(biāo)簽欄并選擇 jars/derbyclient.jar,如圖 3 所示。

 
圖 3. 將 derbyclient.jar 添加到套件路徑

(如果你喜歡,可以收到更新 bundle-classpath 條目至:Bundle-ClassPath: spring-jdbc-2.5.jar, jars/derbyclient.jar。)

現(xiàn)在,我們已經(jīng)準(zhǔn)備好了,可以通過將 JDBC 代碼修改 ContactDAOImpl 類的實(shí)現(xiàn),用來與 CONTACT 表互動(dòng)。如果你需要,可以從本文的示例代碼導(dǎo)入這個(gè) ContactDAOImpl.java;或者只需使用如代碼清單 12 中所示的內(nèi)容。

代碼清單 12. RDBMS 訪問的 ContactDAO 實(shí)現(xiàn) - ContactDAOImpl.java

 
 
 
 
  1. public class ContactDAOImpl implements ContactDAO {  
  2. DataSource dataSource;  
  3. public DataSource getDataSource() {  
  4. return dataSource;  
  5. }  
  6. public void setDataSource(DataSource dataSource) {  
  7. this.dataSource = dataSource;  
  8. }  
  9. public List getContactList() {  
  10. List contactList = new ArrayList();  
  11. try {  
  12. Connection connection = dataSource.getConnection();  
  13. Statement stmt= connection.createStatement();  
  14. ResultSet rs =stmt.executeQuery("SELECT * FROM CONTACT");  
  15. while(rs.next()){  
  16. int contactId = rs.getInt("CONTACTID");  
  17. String firstName = rs.getString("FIRSTNAME");  
  18. String lastName = rs.getString("LASTNAME");  
  19. Contact contact = new Contact(contactId,firstName,lastName);  
  20. contactList.add(contact);  
  21. }  
  22. catch (SQLException e) {  
  23. e.printStackTrace();  
  24. }  
  25. return contactList;  
  26. }  
  27. //  
  28. }  
  29.  

你會(huì)注意到在代碼清單 12 中 ContactDAOImpl.java 有幾處修改:

首先,我們添加了作為 Java bean 屬性的 dataSource,包含相應(yīng)的 getter 和 setter。Spring 將負(fù)責(zé)創(chuàng)建 DataSource 對(duì)象以及將其導(dǎo)入到 ContactDAOImpl。

getContactList() 方法從數(shù)據(jù)源(datasource)獲取連接,然后使用它來檢索 CONTACT 表中的所有聯(lián)絡(luò)記錄。請(qǐng)注意,代碼清單 12 是 ContactDAOImpl.java 的一部分代碼;完整的代碼請(qǐng)查看示例代碼。

ContactDAOImpl 已經(jīng)準(zhǔn)備就緒,我們要做的***一步是修改 ContactDAO 套件中的 contactdao-service.xm,代碼如代碼清單13 所示:

代碼清單 13. 更新 Spring 語境文件 - contactdao-service.xml

 
 
 
 
  1. < ?xml version="1.0" encoding="UTF-8"?> 
  2. < beans xmlns="http://www.springframework.org/schema/beans" 
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 
  5. < bean name="contactDAOService" 
  6. class="com.javaworld.sample.osgi.spring.contact.impl.ContactDAOImpl"> 
  7. < property name="dataSource" > 
  8. < ref bean="dataSource" /> 
  9. < /property> 
  10. < /bean> 
  11. < bean name="dataSource" 
  12. class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
  13. < property name="driverClassName" 
  14. value="org.apache.derby.jdbc.ClientDriver" /> 
  15. < property name="url" 
  16. value="jdbc:derby://localhost:1527/C:/derby_home/databases/ClientDB" /> 
  17. < property name="username" value="test" /> 
  18. < property name="password" value="test" /> 
  19. < /bean> 
  20. < /beans> 
  21.  

contactdao-service.xml 的修改如下:

◆我們聲明了一個(gè) dataSource bean,指向org.springframework.jdbc.datasource.DriverManagerDataSource。這配置了 Spring,來負(fù)責(zé)應(yīng)用程序的數(shù)據(jù)庫連接管理。(請(qǐng)確保在你的 bean 定義中使用你的數(shù)據(jù)庫專用的 JDBC 屬性。)

◆接著,我們修改 contactDAOService 的定義來添加對(duì)于 dataSource bean 的依賴性。

這樣,利用 Spring DM構(gòu)建的 HelloWorld 服務(wù)應(yīng)用程序已經(jīng)準(zhǔn)備好了。當(dāng)在 Equinox 容器中執(zhí)行該應(yīng)用程序時(shí),它將在應(yīng)用程序啟動(dòng)時(shí)在控制臺(tái)上輸出聯(lián)絡(luò)列表。

總結(jié)

OSGi 規(guī)范為 Spring 應(yīng)用程序的開發(fā)引入了模塊化和動(dòng)態(tài)服務(wù)。對(duì)于已經(jīng)熟悉 Spring 編程和配置的開發(fā)者,Spring DM代表了一種更為簡(jiǎn)易的入口,可以學(xué)習(xí) OSGi 的動(dòng)態(tài)、模塊化的開發(fā)規(guī)范,而無需學(xué)習(xí) OSGi API。正如你在本文中所看到的,Spring DM對(duì)于 OSGi 中的面向服務(wù)應(yīng)用程序開發(fā)是一個(gè)非常棒的平臺(tái)。在一個(gè)正在運(yùn)行的系統(tǒng)中,使用 Spring DM編寫的應(yīng)用程序模塊能夠動(dòng)態(tài)地進(jìn)行添加、移除和更新,而且你還可以同時(shí)部署指定模塊的多個(gè)版本。

【編輯推薦】

  1. 你好,OSGi!OSGi入門必讀系列
  2. 使用OSGi構(gòu)建面向服務(wù)的聯(lián)絡(luò)管理應(yīng)用程序
  3. OSGi與Spring:設(shè)置Spring DM開發(fā)環(huán)境
  4. OSGi和Spring入門:什么是Spring動(dòng)態(tài)模型(Spring DM)?
  5. OSGi是什么:Java語言的動(dòng)態(tài)模塊系統(tǒng)

標(biāo)題名稱:OSGi與SpringDM:使用SpringDataSource
文章起源:http://www.dlmjj.cn/article/dphdgds.html