实例使用的Tomcat版本为7.0
方法一:在Web项目中的META-INF目录下新建一个文件context.xml,写入配置
注意:是META-INF目录下,不是WEB-INF目录下
<?xml version='1.0' encoding='utf-8'?>
<Context>
<Resource name="jdbc/qq"
auth="Container"
type="javax.sql.DataSource"
username="root"
password="root"
maxIdle="30"
maxWait="10000"
maxActive="100"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/"+”databaseName”
logAbandoned="true"
</Context>
注:name="jdbc/mysqlds"随便取;
配置好后需要注意的两个步骤
1.将对应数据库的驱动类放到tomcat/lib目录
2.重新启动tomcat服务器,让配置生效
在web应用程序的WEB-INF/web.xml中设置数据源参考,如下:
在<web-app></web-app>节点中加入下面内容:(放在servlet映射配置之后)
<resource-ref>
<description>mysql数据库连接池</description>
<!-- 参考数据源名字,同Tomcat中配置的Resource节点中name属性值"jdbc/mysqlds"一致 -->
<res-ref-name>jdbc/qq</res-ref-name>
<!-- 资源类型 -->
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
编写jsp文件测试,不能用java测试,连接池需要通过服务器管理。
<%@ page language="java"contentType="text/html;charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
import="javax.naming.*,javax.sql.DataSource,java.sql.*"%>
<!DOCTYPEhtmlPUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1">
<title>JNDI</title>
</head>
<body>
<%
try{
Context ctx = new InitialContext();
DataSource ds =(DataSource) ctx.lookup("java:comp/env/jdbc/qq");
if (ds == null) {
System.out.println("数据连接打开错误");
}
Connection con =ds.getConnection();
if (con == null) {
System.out.println("数据连接打开错误");
}
Statement st =con.createStatement();
String sql = "select * from qq.users";
ResultSet rs =st.executeQuery(sql);
while (rs.next()) {
out.println(rs.getString(1) + " " + rs.getString(2)+"<br/>");
}
} catch (Exception e) {
e.printStackTrace();
} %>
</body>
</html>
方法二: 在Tomcat的conf/context.xml中配置
在Tomcat\apache-tomcat-6.0.33\conf目录下的context.xml文件中配置默认值如下:
<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
配置连接池
<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!--配置mysql数据库的连接池,
需要做的额外步骤是将mysql的Java驱动类放到tomcat的lib目录下
maxIdle连接池中最多可空闲maxIdle个连接
minIdle连接池中最少空闲maxIdle个连接
initialSize初始化连接数目
maxWait连接池中连接用完时,新的请求等待时间,毫秒
username数据库用户名
password数据库密码
-->
<Resource name="jdbc/qq"
auth="Container"
type="javax.sql.DataSource"
username="root"
password="root"
maxIdle="30"
maxWait="10000"
maxActive="100"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/ " +”databaseName”/>
</Context>
同方法一类似,
1.将对应数据库的驱动类放到tomcat/lib目录
2.重新启动tomcat服务器,让配置生效
在web应用程序的WEB-INF/web.xml中设置数据源参考,如下:
在<web-app></web-app>节点中加入下面内容:(放在servlet映射配置之后)
配置<resource-ref>。
运行结果图: