在Tomcat6.0+MySQL5.0环境上配置和使用数据库连接池
一,在Tomcat中配置连接池的JNDI
首先到MySQL的网站上下载MySQL JDBC连接器放到%CATALINA_HOME%/lib目录下,在%CATALINA_HOME%/conf目录下找到context.xml,这个文件是全局的,如果想只对特定的应用使用可以编辑WEB-INF/context.xml文件。
在context标记之间添加如下内容:
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="200" maxIdle="100" maxWait="5000" name="jdbc/mysql" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/mvc?autoReconnect=true&useUnicode=true&characterEncoding=gbk" username="root"/>
auth:验证方式,这里用Container表示由容器Tomcat来进行验证
driverClassName:数据库驱动
maxActive:最大活动连接数,就是最大同时存在的连接数
maxIdle:最大空闲连接数,连接池中闲置的连接数
maxWait:当连接池中没有空闲连接,并且达到了最大活动连接数,需要等待的时间,如果在待时间到后这两个条件还为真,就产生异常
name:连接池的JNDI名字
type:JNDI的类型
url:JDBC URL
username:数据库帐号
password:数据库密码,没有密码不写这一项,MySQL可以没有密码,却没有密码是一个空字符串
以上内容可以手动编辑,如果是用的Eclipse的话也可以用eclipse编辑,下面是用Eclipse的编辑方法
双击后在编辑窗口打开,在context标记上右击,选择Add child->Resource,添加一个Resource标记,然后在Resource上右击,选择Add Attribute->Auth,依次添加其它各个属性并编辑其值,完成后保存
至此完成了连接池的创建
二,在项目中引用连接池
编辑WEB-INF/web.xml,在web-app中添加如下内容:
<resource-ref>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
其中<res-ref-name>表示连接池的JNDI名字,其它的与上面相同
至此已经完成了所有的配置工具,下面看看如何通过连接池来访问数据库
三,通过连接池来访问数据库
- <?xml version="1.0" encoding="GB18030" ?>
- <%@ page language="java" contentType="text/html; charset=GB18030"
- pageEncoding="GB18030"%>
- <%@ page import="java.sql.*" import="javax.sql.DataSource" import="javax.naming.*" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
- <title>Insert title here</title>
- </head>
- <body>
- <%
- Context context = new InitialContext();
- //获得数据源
- DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/mysql");
- //获取连接
- Connection conn = ds.getConnection();
- Statement stmt=conn.createStatement();
- ResultSet rs =stmt.executeQuery("select * from products");
- %>
- <table border="3" width="500">
- <tr><th>文章</th></tr>
- <%
- while(rs.next())
- {
- %>
- <tr><td><%=rs.getString("article") %></td></tr>
- <%
- }
- %>
- </table>
- </body>
- </html>
- //web开发网http://www.software8.co/wzjs/
代码我就不多做解释了,应该都能看懂,里面用到了JNDI编程,如果需要自己查资料
最后说明一点,在配置jdbc url的时候如果要用&来把多个参数连接起来的话,要把&转义为&,如果用eclipse编辑则会自动转换