一、在tomcat/conf/server.xml
1.<GlobalNamingResources></GlobalNamingResources>之间添加
复制内容到剪贴板代码:
<Resource
name="jdbc/mysql" //这个名字可以随便取,连接时用到的,
type="javax.sql.DataSource"
password="mysql的登录用户密码"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="10"
maxWait="1000"
username="mysql的登录用户"
url="jdbc:mysql://localhost:3306/test" //test 是你的JSP文件.
maxActive="20"/>
2.在</Host>这之前添加
复制内容到剪贴板代码:
<Context
docBase="你的服务目录"
path="/虚拟路径"
reloadable="true">
<ResourceLink
global="jdbc/mysql"
name="jdbc/mysql"
type="javax.sql.DataSourcer"/>
</Context>
二、在tomcat/conf/context.xml,<Context></Context>之间添加
复制内容到剪贴板代码:
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
password="mysql的登录用户密码"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="10"
maxWait="1000"
username="mysql的登录用户"
url="jdbc:mysql://localhost:3306/test"
maxActive="20"/>
<ResourceLink
global="jdbc/mysql"
name="jdbc/mysql"
type="javax.sql.DataSourcer"/>
注意: 这一步重要,要不然后,
报错javax.naming.NameNotFoundException: Name is not bound in this Context 错误
三、下面是测试文件
testDataSource.jsp
复制内容到剪贴板代码:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection con = null;
Statement sm = null;
ResultSet rs = null;
try {
InitialContext ctx = new InitialContext();
Context envctx = (Context)ctx.lookup("java:comp/env");
DataSource ds = (DataSource)envctx.lookup("jdbc/mysql");
con = ds.getConnection();
sm = con.createStatement();
rs = sm.executeQuery("select * from person"); //对应改
while(rs.next()) {
out.println(rs.getString(1)+",");
}
}catch(Exception e) {
e.printStackTrace();
}finally {
if(rs !=null) {
try {
rs.close();
} catch(SQLException e) {}
rs = null;
}
if(sm != null) {
try {
sm.close();
} catch(SQLException e) {}
sm = null;
}
if(con != null) {
try {
con.close();
} catch(SQLException e) {}
con = null;
}
}
%>
说明: JDBC确保放在Tomcat/common/lib目录下