关于jsp数据库连接池
环境
Tomcat 5.5
XML目录
"/conf/Catalina/localhost/ch16.xml"
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="%CATALINA_HOME%/webapps" path="/ch16" workDir="work/Catalina/localhost/ch16">
<Resource name="jdbc/bn" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="bn" password="bn" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev"/>
</Context>
JSP目录
"/webapps/ch16"
<!--测试数据源-->
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
//从Context中lookup数据源。
ds = (DataSource)envCtx.lookup("jdbc/bn");
if(ds!=null)
{
out.println("已经获得DataSource!");
out.println("<br>");
Connection conn = ds.getConnection();
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select * from book");
out.println("以下是从数据库中读取出来的数据");
while(rst.next())
{
out.println("bookName:"+rst.getString("bookName"));
out.println("<br>");
}
}
else
out.println("连接失败!");
}
catch(Exception ne)
{
out.println(ne);
}
%>
总结:
1.在Tomcat5.0以上使用数据池不需要在server.xml中修改,在"/conf/Catalina/localhost/xxx.xml" 中修改,xxx是你的项目名称.(那样做的目的是为了避免在server中修改后出现的一些莫名其妙影响全局的错误)
问题:
1.docBase="%CATALINA_HOME%/webapps"中的路径一开始我写的是绝对路径,但因为tomcat在中文目录下所以测试没通过,将绝对路径改成变量表示后成功.(那是tomcat对中文不支持的BUG吧)