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

JavaEE 6中新的定義數(shù)據(jù)源方法

原創(chuàng)
開發(fā) 后端
在JavaEE 6中,提供了很多新的特性,51CTO陸續(xù)對這些特性進(jìn)行了報(bào)導(dǎo)。在本文中,將說明JavaEE 6中定義數(shù)據(jù)源的方法。

在JavaEE應(yīng)用程序中,數(shù)據(jù)源對象(DataSource objects)是通過JDBC API訪問關(guān)系數(shù)據(jù)庫的途徑。每個DataSource對象都有一系列用來描述現(xiàn)實(shí)世界中數(shù)據(jù)源的屬性,通過這些屬性可以描述數(shù)據(jù)庫服務(wù)器所在的地址、數(shù)據(jù)庫名稱、網(wǎng)絡(luò)協(xié)議等信息。另外數(shù)據(jù)源對象還可以與JNDI配合使用,如果將一個數(shù)據(jù)源與一個注冊好的JNDI服務(wù)綁定后,在應(yīng)用程序中就可以通過訪問JNDI API得到這個數(shù)據(jù)源對象,進(jìn)而取得和數(shù)據(jù)庫的鏈接以及進(jìn)行數(shù)據(jù)庫操作。

在JavaEE 6以前,數(shù)據(jù)源的定義和使用與Java應(yīng)用服務(wù)器廠家有很強(qiáng)的相關(guān)性,JavaEE 6則提供了更為靈活的數(shù)據(jù)源定義方式,可以定義在多個應(yīng)用服務(wù)器之間兼容的數(shù)據(jù)源。另外同時支持注釋、聲明、部署表述等多個定義方式。在本文中,將說明如何使用注釋和或部署描述來定義數(shù)據(jù)源。

使用注釋定義數(shù)據(jù)源

在JavaEE 6中提供了兩個用來定義數(shù)據(jù)源的注釋標(biāo)記:@DataSourceDefinition 和@DataSourceDefinitions,這兩個標(biāo)記都位于javax.annotation.sql包中。通過@DataSourceDefinition可以定義單個數(shù)據(jù)源,通過@DataSourceDefinitions可以定義多個數(shù)據(jù)源。

@DataSourceDefinition注釋

@DataSourceDefinition注釋標(biāo)記可以應(yīng)用客戶端、Servlet、EJB等元件當(dāng)中定義數(shù)據(jù)源,通過該注釋標(biāo)記,可以定義數(shù)據(jù)源對象,并與JNDK綁定。該標(biāo)記的使用方式與設(shè)置數(shù)據(jù)源對象的屬性沒有什么區(qū)別,也可以設(shè)置附加信息以及特定信息。

例如,下面的注釋標(biāo)記創(chuàng)建了一個訪問Derby數(shù)據(jù)庫的數(shù)據(jù)源。

  1. @DataSourceDefinition(name = "java:app/env/Servlet_DataSource",  
  2.     minPoolSize = 0,  
  3.     initialPoolSize = 0,  
  4.     className = "org.apache.derby.jdbc.ClientXADataSource",  
  5.     user = "APP",  
  6.     password = "APP",  
  7.     databaseName = "testdb",  
  8.     properties = {"connectionAttributes=;create=true"}  

數(shù)據(jù)源的name屬性值就是要綁定的的JNDI名稱,根據(jù)JNDI的特點(diǎn),該值應(yīng)該是唯一的。從上面的例子中可以注意到,屬性值的第一部分,也就是java:app是一個命名空間說明。在JavaEE 6中引入了應(yīng)用元件命名空間,目前可以使用的命名空間如下:

java:comp,同一應(yīng)用同一容器中的元件可以訪問。

java:module,與元件相同的一個模塊中可以訪問,比如定義在同一個ejb-jar.xml中的EJB元件。

java:app,可以在同一應(yīng)用中的所有元件和模塊中訪問,例如位于統(tǒng)一ear文件中的客戶端元件、WEB元件、EJB元件。

java:global,可以在服務(wù)器中所有的應(yīng)用程序之間共享。

name屬性所引用的命名空間范圍,也決定了數(shù)據(jù)源對象的訪問范圍,也就是模塊、應(yīng)用或者同一服務(wù)中的所有用用。以下的定義方式分別表示:

java:comp/env/, 與數(shù)據(jù)源定義元件處于同一容器中的其他元件、如客戶端元件、WEB元件、EJB元件都可以訪問這個數(shù)據(jù)源。

java:module/env/, 位于同一個ejb-jar.xml中的元件都可以訪問這個數(shù)據(jù)源。

java:app/env/, 同一個應(yīng)用中的所有元件,如EJB, servlet以及客戶端元件都可以訪問這個數(shù)據(jù)源。

@DataSourceDefinitions注釋

通過@DataSourceDefinitions可以在一個元件類中創(chuàng)建多個數(shù)據(jù)源,就如同定義一個數(shù)組一樣,每個數(shù)據(jù)源是數(shù)組的一個元素。下面是一個為EJB定義多個數(shù)據(jù)源的例子。
 

  1. @DataSourceDefinitions(  
  2.     value = {  
  3.         @DataSourceDefinition(name = "java:app/env/HelloStatefulEJB_DataSource",  
  4.             minPoolSize = 0,  
  5.             initialPoolSize = 0,  
  6.             className = "org.apache.derby.jdbc.ClientXADataSource",  
  7.             portNumber = 1527,  
  8.             serverName = "localhost",  
  9.             user = "APP",  
  10.             password = "APP",  
  11.             databaseName = "testdb",  
  12.             properties = {"connectionAttributes=;create=true"}  
  13.         ),  
  14.         @DataSourceDefinition(name = "java:comp/env/HelloStatefulEJB_DataSource",  
  15.             minPoolSize = 0,  
  16.             initialPoolSize = 0,  
  17.             className = "org.apache.derby.jdbc.ClientXADataSource",  
  18.             portNumber = 1527,  
  19.             serverName = "localhost",  
  20.             user = "APP",  
  21.             password = "APP",  
  22.             databaseName = "testdb",  
  23.             properties = {"connectionAttributes=;create=true"}  
  24.         )  
  25.     }  
  26. )  
  27. @Stateful 
  28. public class HelloStatefulEJB implements HelloStateful {  
  29.     ...  
  30.     ...  

 采用部署表述定義數(shù)據(jù)源

除了前面的方式以外,JavaEE 6還繼續(xù)支持使用部署描述的方式定義數(shù)據(jù)源,部署描述信息可以寫在application.xml、application-client.xml、web.xml以及ejb-jar.xml當(dāng)中。下面的例子中定義的數(shù)據(jù)源與前面使用@DataSourceDefinition數(shù)據(jù)源含義相同。

  1. <data-source> 
  2.     <name>java:app/env/Application_Level_DataSource</name> 
  3.     <class-name>org.apache.derby.jdbc.ClientXADataSource</class-name> 
  4.     <server-name>localhost</server-name> 
  5.     <port-number>1527</port-number> 
  6.     <database-name>testdb</database-name> 
  7.     <user>APP</user> 
  8.     <password>APP</password> 
  9.     <property> 
  10.         <name>connectionAttributes</name> 
  11.         <value>;create=true</value> 
  12.     </property> 
  13. </data-source> 

如果在同一個應(yīng)用程序中,分別通過@DataSourceDefinition和部署描述信息定義了兩個數(shù)據(jù)源,但這這兩個數(shù)據(jù)源具有相同的name屬性。如果發(fā)證這樣的情況,采用部署描述定義的數(shù)據(jù)源優(yōu)先權(quán)高于采用注釋聲明定義的數(shù)據(jù)源。

【編輯推薦】

  1. Java EE 6增強(qiáng)的可擴(kuò)展性:Web分片和可插拔框架
  2. 簡化Web應(yīng)用開發(fā) Servlet 3.0特性詳解
  3. Apache對JavaEE 6說“不”
  4. 可擴(kuò)展GlassFish v3的JavaEE 6平臺
  5. Java EE 6新特性之Servlet 3.0的異步處理
責(zé)任編輯:佚名 來源: 51CTO
相關(guān)推薦

2009-07-28 14:22:05

數(shù)據(jù)源控件ASP.NET

2017-09-04 14:52:51

Tomcat線程數(shù)據(jù)源

2011-05-05 13:30:17

GridViewListView布局

2010-12-31 16:22:04

Analysis Se

2009-06-15 13:24:46

JBoss數(shù)據(jù)源

2010-12-27 09:59:11

ODBC數(shù)據(jù)源

2017-06-14 23:42:27

大數(shù)據(jù)數(shù)據(jù)源架構(gòu)

2021-05-21 09:34:40

React React 17前端

2009-11-03 14:56:36

ADO.NET數(shù)據(jù)源

2023-11-27 09:16:53

Python數(shù)據(jù)源類型

2009-07-21 17:41:58

JDBC數(shù)據(jù)源

2022-05-25 07:22:07

ES12JavaScript語言

2009-07-07 13:02:29

JDK1.5

2009-06-16 16:20:58

JBoss4配置Inf

2010-05-14 15:32:51

配置MySQL

2013-06-07 10:05:18

2013-06-09 10:15:09

2021-10-18 06:54:47

數(shù)據(jù)源數(shù)據(jù)預(yù)處理

2009-07-01 17:30:14

樣式生成器Visual Stud

2020-12-31 07:55:33

spring bootMybatis數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91在线视频在线观看 | 国产综合精品 | 亚洲精品免费视频 | 中文字幕一区二区不卡 | 国产精品乱码一区二区三区 | aa级毛片毛片免费观看久 | 久久99国产精品 | 国产精品毛片无码 | 51ⅴ精品国产91久久久久久 | 国产精品乱码一二三区的特点 | 久久av网| 亚洲欧美一区二区三区在线 | 狠狠综合网 | 国产精品毛片一区二区三区 | 国产精品一区二区三区久久久 | 香蕉一区 | www.伊人.com| 看羞羞视频 | 欧美精品中文 | 日韩在线免费视频 | 精品久久久999 | 欧美精品在线播放 | 久久久久久亚洲 | 夜夜操天天操 | 亚洲一区二区在线电影 | 日韩国产在线观看 | 亚洲精品二三区 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 成人精品 | 国产精品一区在线播放 | 婷婷久久精品一区二区 | 久久久久综合 | 欧美一区二区三区在线观看视频 | 精品美女久久久久久免费 | 国产精品一区三区 | 免费看国产一级特黄aaaa大片 | 国产福利资源 | 国产女人与拘做受视频 | 国产精品久久久久久久久免费 | 国产激情一区二区三区 | 久久9久|