确定MySQL数据库服务开启后,创建对应的数据库,导入对应的connector到工程.我这里创建数据库的叫user.
1.在WebRoot/META-INF/下创建或更改context.xml,添加代码如下:
<Context>
<!--
maxActive 最大连接数
maxIdle 最大空闲连接数
<span style="white-space:pre"> </span> maxWait 最大等待时间
-->
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/user"
username="user"
password="1234"
maxActive="4"
maxIdle="2"
maxWait="6000"
/>
</Context>
2.创建一个类DBPool,在该类中不能用JUnit测试是否获得连接,因为没有tomcat的支持,所以context.xml得不到加载.
import java.sql.*;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBPool {
private static DataSource ds;
static {
try {
InitialContext ic = new InitialContext();
ds = (DataSource) ic.lookup("java:comp/env/jdbc/mysql");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() {//获得连接
try {
return ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public void close(ResultSet rs,PreparedStatement pstmt,Connection conn){//关闭连接
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
}
}
3.在index.jsp中测试是否成功获得连接,注意导入对应头文件,这里给出部分代码:
<body>
<%
Connection conn=DBPool.getConnection();
%>
<%=conn %>
</body>
4.部署,打开index.jsp,若看到的不是null或没有异常,则连接池配置成功.