告诉你如何在你的服务器(比如:GlassFish和Tomcat)中配置一个数据源,并如何在Web应用程序中访问数据源。
GlassFish有一个基于web的管理接口,你可以通过来配置数据源,把你的浏览器指向http://localhost:4848,然后登录它,默认的用户名和密码是amin和adminadmin。
首先,配置一个数据库连接池。选择“连接池”> “新建”,进行常规配置:
在下一步中,指定数据库连接的属性:
接着,你需要配置一个JDBC数据源,并命名为jdbc/xgtimes:
最后,你还需要把数据库驱动类拷贝到服务器的域目录的lib/ext目录下。
在应用程序中,我们可以通过如下方法使用连接池:
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中进行声明,对于一个数据源,可以在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用于数据源的名称,有两种查询方式,上面我们使用ctx.lookup,另外一种最简洁的方法就是使用资源注入,你在受管bean中声明一个域,然后象如下那样使用注释来标记它:
view plaincopy to clipboardprint?@Resource(name="jdbc/mydb") private DataSource source; @Resource(name="jdbc/mydb")
private DataSource source;
当服务器加载受管bean时,域就会自动初始化。这种特性仅限于支持JavaEE5标准的服务器