新手配置tomcat下的mysql jdbc连接池,先说一下环境,具体软件如下:
apache-tomcat-6.0.35-windows-x86.zip
mysql-5.5.17-win32.zip
myeclipse-8.5.0-win32.exe
mysql-connector-java-5.1.16-bin.jar
可行配置如下:
1 在Tomcat的conf文件夹下的context.xml文件内进行配置,配置内容如下:
<Resource name='jdbc/TestJavaWeb'
auth='Container'
type='javax.sql.DataSource'
maxActive='100' maxIdle='30' maxWait='10000'
username='root' password='hammer'
driverClassName='com.mysql.jdbc.Driver'
url='jdbc:mysql://localhost:3306/mysql?autoReconnect=true'
factory = 'org.apache.dbcp.BasicDataSourceFactory'
characterEncoding='utf-8'>
</Resource>
2 然后在Web程序的web.xml文件中配置数据源引用。配置代码如下:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestJavaWeb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3 获取数据源连接对象,获取代码如下:
/**
* 获得数据源
*
* @return
* @throws NamingException
* @throws SQLException
*/
public Connection getConnection() throws NamingException, SQLException {
Connection conn = null;
Context initContext = new InitialContext(); // 实例化一个InitialContext
Context envContext = (Context) initContext.lookup('java:/comp/env'); // 获取所有的资源
DataSource ds = (DataSource) envContext.lookup('jdbc/TestJavaWeb'); // 获取JNDI数据源
conn = ds.getConnection();
return conn;
}
4.我的jsp文件主要测试代码如下:
<%@page import='java.sql.*'%>
<%@page import='javax.sql.DataSource'%>
<%@page import='javax.naming.*'%>
<%
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx
.lookup('java:comp/env/jdbc/TestJavaWeb');
Connection conn = ds.getConnection();
Statement state = conn.createStatement();
String sql = 'select user from user';
ResultSet rs = state.executeQuery(sql);
while (rs.next()) {
out.println(rs.getString(1) + '--<tr>');
out.println(rs.getString(1) + '--<tr>');
out.println(rs.getString(1) + '<br>');
}
rs.close();
state.close();
conn.close();
%>