告訴你如何在你的服務(wù)器(比如:GlassFish和Tomcat)中配置一個(gè)數(shù)據(jù)源,并如何在Web應(yīng)用程序中訪問數(shù)據(jù)源。
GlassFish有一個(gè)基于web的管理接口,你可以通過來配置數(shù)據(jù)源,把你的瀏覽器指向http://localhost:4848,然后登錄它,默認(rèn)的用戶名和密碼是amin和adminadmin。
首先,配置一個(gè)數(shù)據(jù)庫連接池。選擇“連接池”> “新建”,進(jìn)行常規(guī)配置:

在下一步中,指定數(shù)據(jù)庫連接的屬性:

接著,你需要配置一個(gè)JDBC數(shù)據(jù)源,并命名為jdbc/xgtimes:

最后,你還需要把數(shù)據(jù)庫驅(qū)動(dòng)類拷貝到服務(wù)器的域目錄的lib/ext目錄下。
在應(yīng)用程序中,我們可以通過如下方法使用連接池:
view plaincopy to clipboardprint?
Public void loginBean() {
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/xgtimes");
Connection conn = ds.getConnection();
} catch (NamingException ex) {
ex.printStackTrace();
}
}
Public void loginBean() {
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/xgtimes");
Connection conn = ds.getConnection();
} catch (NamingException ex) {
ex.printStackTrace();
}
}
Java EE 5中要求將資源在web.xml中進(jìn)行聲明,對于一個(gè)數(shù)據(jù)源,可以在web.xml中這樣配置:
resource-ref> <res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
注意:jdbc/xgtimes用于數(shù)據(jù)源的名稱,有兩種查詢方式,上面我們使用ctx.lookup,另外一種最簡潔的方法就是使用資源注入,你在受管bean中聲明一個(gè)域,然后象如下那樣使用注釋來標(biāo)記它:
view plaincopy to clipboardprint?@Resource(name="jdbc/mydb") private DataSource source; @Resource(name="jdbc/mydb")
private DataSource source;
當(dāng)服務(wù)器加載受管bean時(shí),域就會(huì)自動(dòng)初始化。這種特性僅限于支持JavaEE5標(biāo)準(zhǔn)的服務(wù)器