本例子中數據庫爲mytest中有表table,具體信息以下html
(1)將JDBC的驅動複製到Tomcat的lib之下(如apache-tomcat-6.0.45\lib),以下圖所示java
(2)配置TOMCAT_HOME\conf\server.xml:在 <GlobalNamingResources>標籤下添加mysql
<Resource name="jdbc/mytest"
type="javax.sql.DataSource"
username="root" password=""
driverClassName="com.mysql.jdbc.Driver"
maxIdle="40"
maxWait="50"
maxActive="10"
url="jdbc:mysql://localhost:3306/mytest"
/>web
其中:sql
name="名稱"
type="類型"
username="數據庫用戶名" password="密碼"(沒有密碼時 password=""中間不能有空格)
driverClassName="驅動Class名稱(全路徑)"
maxIdle="最大空閒鏈接數"
maxWait="最大等待鏈接數"
maxActive="最大活動鏈接數"
url="鏈接特徵字符串"數據庫
以下圖所示apache
(3)配置TOMCAT_HOME\conf\context.xml在<Context>標籤下添加瀏覽器
<ResourceLink global="jdbc/mytest" name="jdbc/mytest" type="javax.sql.DataSource"/>tomcat
目的是將server.xml配置的資源同Context(上下文)鏈接起來。jsp
如圖所示
(4)新建工程:Dynamic Web project,如圖所示
點擊next,如圖所示:
項目命名爲webdbpool
單擊Target Runtime右側的New,以下圖
選擇你的Tomcat的版本號,點擊Next,選擇你的Tomcat所在的路徑,如圖所示
點擊finish,回到建立項目的主界面,在點擊完成。
(5)修改webdbpool\WebRoot\WEB-INF\web.xml文件添加下面內容
<resource-ref>
<description>MySQL DataSource</description>
<res-ref-name>jdbc/mytest</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
以下圖所示
(6)按照下圖所示,建立WebDBUtility.java,TestDB.java和queryuser.jsp
package jead.chap4; import java.sql.Connection; import java.sql.SQLException; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class WebDBUtility { public static Connection getConnection(String strPoolName) throws NamingException, SQLException{ Connection conn=null; InitialContext ctx=new InitialContext(); DataSource ds =(DataSource) ctx.lookup("java:comp/env/"+strPoolName); conn=ds.getConnection(); return conn; } }
package jead.chap4; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.naming.NamingException; public class TestDB { public List getUserList(){ ArrayList al=new ArrayList(); Connection conn =null; Statement stmt =null; ResultSet rs =null; try { conn = WebDBUtility.getConnection("jdbc/mytest"); stmt = conn.createStatement(); String sql="select * from table1"; rs =stmt.executeQuery(sql); while(rs.next()){ al.add("id:"+rs.getInt("_id")+"username:"+rs.getString("_username")+"password:" +rs.getString("_password")+"desc:"+rs.getString("_desc")+"<br>"); } } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ try { if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(conn!=null) conn.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } return al; } }
<%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312" pageEncoding="GB2312"%> <%@ page language="java" import="jead.chap4.*,java.util.List" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=GB2312"> <title>Insert title here</title> </head> <body> <% out.println("用戶查詢:<br>"); TestDB td = new TestDB(); //List list =td.getUserList; List list =td.getUserList(); for(int i=0;i<list.size();i++){ out.println(list.get(i)); } %> </body> </html>
(7)發佈項目。右鍵項目->Export->WAR file,以下圖所示
點擊next,選擇要發佈的位置,以下圖所示
(8)在瀏覽器中輸入localhost:8080/webdbpool/queryuser.jsp便可訪問。結果以下:
將驅動類mysql-connector-java-5.1.7-bin.jar放到JBOSS_HOME\server\default\lib下(注意:別放到了JBOSS_HOME\lib下)
(1)從JBOSS_HOME\docs\examples\jca下複製mysql-ds.xml到JBOSS_HOME\server\default\deploy並將其中內容改寫爲
<?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>mytest1</jndi-name> <connection-url>jdbc:mysql://localhost:3306/mytest</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password></password><!--主要若是密碼爲空就不能有空格--> <min-pool-size>5</min-pool-size> <max-pool-size>20</max-pool-size> <idle-timeout-minutes>0</idle-timeout-minutes> </local-tx-datasource> </datasources>
這時能夠啓動JBOSS,若是配置成功則控制檯會打印出 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=mytest1' to JNDI name 'java:mytest1'
(2)和上面同樣新建工程:Dynamic Web project,如圖所示
點擊next,如圖所示:
項目命名爲JBossdbpoold
在Target Runtime下選擇JBoss Runtime
(3)和上面同樣建立,建立WebDBUtility.java,TestDB.java和queryuser.jsp
不一樣的是WebDBUtility.java
DataSource ds =(DataSource) ctx.lookup("java:comp/env/"+strPoolName);
改成
DataSource ds =(DataSource) ctx.lookup("java:/"+strPoolName);
TestDB.java中
conn = WebDBUtility.getConnection("jdbc/mytest");
改成
conn = WebDBUtility.getConnection("mytest");
(4)按照上面相似的方法發佈到JBOSS_HOME\server\default\deploy中,在瀏覽器中輸入http://localhost:8080/JBossdbpool/queryuser.jsp能夠看到相似的結果