今天下午一直在配置tomcat6.0数据库连接池,从网上找了些资料,但都不是很完全,在综合了数份资料后,还是成功了,呵呵,现在把它写在这里:
1. 首先,修改conf/server.xml文件:在<host>目录下添加红色背景的代码
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/jdbctest" docbase="jdbctest" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/userdb"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/userdb"
/>
</Context>
</Host>
注意:1.path=""为工程路径。2. <Resource name=""...>name为jndi目录名(大小写敏感),userdb是数据库名。
2. 然后,在相同目录下的web.xml文件<web-app>下添加如下代码:
<ResourceLink name="jdbc/userdb" global="jdbc/userdb" type="javax.sql.DataSource"/>
或者:在项目下的web.xml文件添加如下代码:
<resource-ref>
<res-ref-name>jdbc/userdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3. 要测试的java代码:
package dongqu;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
public class DBTest {
String username = "";
int userid;
public DBTest(){
try{
Context ctx = new InitialContext();
System.out.println(ctx.toString()+"nnnnnnnnnnnnn");
if(ctx == null){
throw new Exception("No contest created");
}
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/userdb");
System.out.println(ds.toString()+"ddddddddddddd");
if(ds != null){
Connection conn = ds.getConnection();
if(conn != null){
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from t_user");
while(rs.next()){
userid = rs.getInt("userid");
username = rs.getString("username");
}
}
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
public String getUserName() {
return username;
}
public int getUserId() {
return userid;
}
}
4. 简单的jsp页面:
<body>
<%!
DBTest dbt = new DBTest();
%>
<h2>tomcat6.0 + mysql 数据库连接池</h2>
用户ID: <%= dbt.getUserId() %><br/>
用户名: <%= dbt.getUserName() %>
</body>
5. 最好要注意的是:我的mysql5.0以上版本,开始用的是mysql驱动jar包是mysql-connector-java-2.0.14.jar,但好象不能用了,而用的是mysql-connector-java-3.1.14.jar,并且要放在tomcat 下lib目录下。