<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<%
out.print("連接池測試開始<br>");
DataSource ds = null;
try{
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysqlpool");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String strSql = " select * from user";
ResultSet rs = stmt.executeQuery(strSql);
while(rs.next()){
out.print(rs.getString(1)+" ");
out.print(rs.getString(2)+" ");
out.print(rs.getString(3)+" ");
out.print(rs.getString(4)+" ");
out.print(rs.getString(5)+" ");
out.print(rs.getString(6)+"<br>");
}
out.print("測試結束");
}
catch(Exception ex){
out.print("出現(xiàn)例外,信息是:"+ex);
ex.printStackTrace();
}
%>
</head>
<body>
</body>
</html>
代碼結束。
ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysqlpool");這條代碼表示找名字叫jdbc/mysqlpool的DataSource。
在瀏覽器的地址欄輸入: http://localhost://8080/yourweb/mysqlpool.jsp 出現(xiàn)了
連接池測試開始
localhost root 4a537f9733eb2bf4 Y Y Y
% root *13079F362E38088B725A0134245BEEA4F67AD89D Y Y Y
測試結束
恭喜你,你成功了!
注意:以上方法是在Tomcat5.028下調(diào)試成功的,我相信Tomcat5.X版本的通過這種方式也是可以達到一樣有效果的。
還有一種方法也是可以配置數(shù)據(jù)庫連接池的,我說明下
在%TOMCAT_HOME%\conf\Catalina\localhost\yourweb.xml的<Context></Context>之間加入以下代碼就可以了,一步搞定
<Resource auth="Container" description="MySQL Connection Pool" name="jdbc/mysql" type="javax.sql.DataSource"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
<ResourceParams name="jdbc/mysqlpool">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value>yusaihua</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/mysql?autoReconnect=true&useUnicode=true&characterEncoding=GB2312</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
</ResourceParams>
不需要通過 http://127.0.0.1:8080/admin 來添加數(shù)據(jù)庫源,呵呵,比較簡單吧!
以上這些都是我花了二天才弄出來的,沒有找人幫忙,當時真的要瘋掉了,一個這么簡單的東西,哎,網(wǎng)上的東西多,但是太多錯誤了,我給出我調(diào)試程序時出現(xiàn)過的錯誤,和我的解決方案,希望能幫助大家,祝大家工作愉快 :)
1)錯誤提示:
javax.naming.NameNotFoundException: Name mysqlpool is not bound in this Context
->表示沒有找到叫"mysqlpool"的數(shù)據(jù)源。
a)請檢查連接池配置文件%TOMCAT_HOME\conf\server.xml中的<Resource name="jdbc/mysqlpool" type="javax.sql.DataSource"/>是不是和mysqlpool.jsp里面的ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysqlpool")一致
b)請檢查你%TOMCAT_HOME%\conf\Catalina\localhost\yourweb.xml里面是否有
<ResourceLink name="jdbc/mysqlpool" global="jdbc/mysql" type="javax.sql.DataSourcer"/>代碼。
2)錯誤提示:
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
->說明dbcp沒有發(fā)現(xiàn)JDBC驅(qū)動'com.mysql.jdbc.Driver',請檢查你的%TOMCAT_HOME%\common\lib\下面是否有MySQL的JDBC驅(qū)動程序,或者是不是下版本有問題,到http://dev.mysql.com/downloads/connector/j/3.1.html下載最新的版本。
聯(lián)系客服