Tuesday, August 12, 2008
在tomcat_home\common下放入jdbc的三个驱动程序,或者放在java_home的jre\lib\ext目录下。
方式一、全局数据库连接池
1、通过管理界面配置连接池,或者直接在tomcat\conf\server.xml的GlobalNamingResources中增加如下代码:
<Resource name="jdbc/hdh"
type="javax.sql.DataSource"
password="111"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
validationQuery="select 1"
username="sa"
url="jdbc:microsoft:sqlserver://localhost:1917;DatabaseName=WEGROUP"
maxActive="4"/>
2、在tomcat\webapps\myapp\META-INF\context.xml的Context中增加:
<ResourceLink global="jdbc/hdh" name="jdbc/hdh" type="javax.sql.DataSource"/>
或者在tomcat\conf\context.xml的Context中增加:
<ResourceLink global="jdbc/hdh" name="jdbc/hdh" type="javax.sql.DataSource"/>
方式二、局部数据库连接池
在tomcat\webapps\myapps\META-INF\context.xml的Context中增加:
<Resource name="jdbc/hdh"
type="javax.sql.DataSource"
password="111"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
validationQuery="select 1"
username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=WEGROUP"
maxActive="4"/>
参数说明:
driveClassName:JDBC驱动类的完整的名称;
maxActive:同时能够从连接池中被分配的可用实例的最大数;
maxIdle:可以同时闲置在连接池中的连接的最大数;
maxWait:最大超时时间,以毫秒计;
password:用户密码;
url:到JDBC的URL连接;
user:用户名称;
validationQuery:用来查询池中空闲的连接。
三、注意事项
我的配置环境是:
tomcat5.5
jdk1.5
使用tomcat6与jdk1.5搭配的时候出现有applicationservlet问题。
四、测试代码
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%
try {
ResultSet rs = null;
Statement stmt = null;
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/mssqlcsjcms");
Connection conn = ds.getConnection();
if(!conn.isClosed())
{
stmt = conn.createStatement();
//stmt.executeQuery("create table tb(fff varchar2(10))");
//stmt.executeUpdate("insert into tb values('456')");
rs = stmt.executeQuery("select * from tb_Users");
while (rs.next()){
out.println("" + rs.getString("UserName") + "");
out.println(":"+"
");
//out.println(" + rs.getString('answers') + ");
}
rs.close();
out.println("成功");
}
conn.close();
}
catch(SQLException e) {
out.println("发生错误:"+e.toString());
}
%>