首先先对tomcat中的一些配置文件进行修改
1、创建数据库shixun
2、配置server.xml文件。Tomcat安装目录下conf中server.xml文件。
<GlobalNamingResources>
<Resource
name="jdbc/DBPool"
type="javax.sql.DataSource"
password="root"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="29"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/shixun"
maxActive="30"
/>
</GlobalNamingResources>
name:指定连接池的名称
type:指定连接池的类,他负责连接池的事务处理
url:指定要连接的数据库
driverClassName:指定连接数据库使用的驱动程序
username:数据库用户名
password:数据库密码
maxWait:指定最大建立连接等待时间,如果超过此时间将接到异常
maxIdle:指定连接池中连接的最大空闲数
maxActive:指定连接池最大连接数
3、配置web.xml文件。
<web-app>
<resource-ref>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</web-app>
4、配置context.xml文件
与server.xml文件所在的位置相同。
<Context>
<ResourceLink
name="jdbc/DBPool"
type="javax.sql.DataSource"
global="jdbc/DBPool"
/>
</Context>
5、测试的java代码
package com.lin.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class JdbcPoolUtil {
private static JdbcPoolUtil instance = new JdbcPoolUtil();
private static final String DSNAME="java:comp/env/jdbc/DBPool";
private JdbcPoolUtil() {
}
public static JdbcPoolUtil getInstance() {
return instance;
}
public Connection getConnection() {
Connection conn = null;
try {
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup(DSNAME);
conn = ds.getConnection();
} catch (SQLException e) {
System.out.println("数据库连接失败!");
e.printStackTrace();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
// 关闭数据库连接的资源
public static void free(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e1) {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
e1.printStackTrace();
}
e.printStackTrace();
}
}
}
//获取connection的java代码为Connection conn = JdbcPoolUtil.getInstance().getConn();