首先:在tomcat目录下的conf目录中建立路径Catalina/localhost,在新建的目录下建立xml文件,注意:名称最好和工程名相同。在里面加入如下内容
<?xml version="1.0" encoding="UTF-8"?>
<Context displayName="MessageBoard" docBase="MessageBoard" path="/MessageBoard" workDir="work/Catalina/localhost/Messageboard">
<Resource auth="Container" name="MessageBoard/jdbc/Data" type="javax.sql.DataSource"></Resource>
<ResourceParams name="MessageBoard/jdbc/Data">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>851120</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/msgboard?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>
下一步时配置web.xml文件:在web-app中加入resource-ref文件
<web-app>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/msgBoard</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
测试数据源是否成功
新建立一个jsp文件,加入如下内容:
<%@ page language="java" contentType="text/html; charset=gbk"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page pageEncoding="gbk" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%!
//这个函数用来获取一个和数据库库的连连接
Connection getConnection() throws SQLException{
String dbURL="jdbc:mysql://localhost/msgboard";
String dbUser="root";
String dbPassword="851120";
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
return DriverManager.getConnection(dbURL,dbUser,dbPassword);
}
%>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>数据库库的连连接</title>
</head>
<body>
<%
//Connection conn=null;
//try{
// conn=getConnection();
//}catch(SQLException e){
// e.printStackTrace();
//}
Context ctxt=new InitialContext();
Context envContext = (Context)ctxt.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("MessageBoard/jdbc/Data");
//DataSource ds=(DataSource)ctxt.lookup("java:comp/env/MessageBoard/jdbc/Data");
try{
Connection conn=ds.getConnection();
}catch(SQLException e){
e.printStackTrace();
}
%>
</body>
</html>