2.1.1 Tomcat数据库连接池配置---连接SQL Server2000 (1)打开tomcat 6.0/conf/server.xml,在</Host>前加: <Context docBase="test" path="/test" reloadable="true" debug=”5” reloadable="true" crossContext="true"> maxIdle="30" maxWait="10000" username="sa" password="1234" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" (2)在webapps/项目名/WEB-INF中的web.xml中之前增加以下配置: <resource-ref> (3)把以下几个.jar文件复制到tomcat安装目录下的lib文件夹中: commons-collections-3.1.jar、 commons-dbcp-1.2.1.jar、 commons-pool-1.2.jar、msutil.jar、 msbase.jar、mssqlserver.jar 后面三个是JDBC 数据库驱动,前面三个应该是数据库连接池的包 (4)关键一步:确认sqlserver2000可以远程连接,这除了开放1433端口外还要,升级数据库到sp3或者sp4,否则连接会发出SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误。 (5)测试: 编写数据库连接类: Package com.test; import java.sql.Connection; import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; public class DBConn { public static Connection getConnection() { try { Context initContext = new InitialContext(); if (initContext == null) throw new Exception("No Context"); DataSource ds = (DataSource) initContext.lookup("java:comp/env/jdbc/sqlserver"); if (ds != null) { Connection conn = ds.getConnection(); if (conn != null) { return conn; } } } catch (Exception e) {
e.printStackTrace(); } return null; } } 测试的级jsp页面: <%@ page contentType="text/html;charset=utf-8"%> <%@ page import="java.sql.*"%> <%@ page import="javax.sql.*"%> <%@ page import="javax.naming.*"%> <%@ page import="com.test.DBConn"%> <HTML> <HEAD> <TITLE>JSP测试页面</TITLE> </HEAD> <BODY> <% Connection conn = DBConn.getConnection(); Statement st = conn.createStatement(); String sql = "select top 2 * from source"; ResultSet rs = st.executeQuery(sql); while (rs.next()) { %> 第一个字段内容为:<%=rs.getString(1)%> 第二个字段内容为:<%=rs.getString(2)%> <br> <% } %> <% out.print("使用jdbc驱动操作数据库操作成功"); %> <% rs.close(); st.close(); conn.close(); %> </BODY> </HTML> 在Myeclipse中使用数据库连接池,采用外部的tomcat 新建context.xml文件,在META-INF中新建 其内容为: <Context path="/test" docBase="test" debug="5" reloadable="true" crossContext="true"> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=tomato" username="sa" password="funcheer!@#$qwer" maxIdle="30" maxWait="10000" maxActive="100" /> </Context> 在WEB-INF的web.xml中添加如下内容: <resource-ref> <res-ref-name>jdbc/tomato</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 最后测试和上面的一样。 2.1.2 resin(resin 3.1.6)数据库连接池配置---sqlserver 在resion/conf/resin.conf文件中,配置一个数所库连接池 <database> <jndi-name>jdbc/sqlserver</jndi-name> <driver type="com.microsoft.jdbc.sqlserver.SQLServerDriver"> <url>jdbc:microsoft:sqlserver://localhost:1433;databasename=test</url> <user>sa</user> <password>1234</password> </driver> <prepared-statement-cache-size>8</prepared-statement-cache-size> <max-connections>20</max-connections> <max-idle-time>30s</max-idle-time> </database> 将相应的驱动程序放到resin/lib/目录下,应该就是上面提到的驱动程序。 测试网页test.jsp |