惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
博客园 - 司徒正美
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog

博客园 - Aimd

EPS图片转换 & 共享一个Excel宏,用于画Latex表格 Latex从零到开始使用 强制删除文件夹 SWT应用程序打包成jar过程 解决firefox频繁询问代理服务器用户名和密码问题 SQL server 2005 不能重新安装解决及ADO连接事例代码 SQL server 2005 远程连接问题及解决 家乡回长春路上拍的照片 blog的三种人 右键打不开磁盘又出新花样 用jni实现java使用dll 允许SWT Table的Tableitem多行显示 今天遇到一个geotools(GIS)和Eclipse合作的巨恶问题 实现模型间的多线连接 慎用EMF Ecore文件的名字 数据压缩方法 BIRT插件的使用 RCP的布局得两个细节 RCP导出注意事项
Eclipse下配置及使用Tomcat 6.0数据库连接池连接sqlserver2000
Aimd · 2007-11-24 · via 博客园 - Aimd

前提假设Eclipse已经设置成功,Tomcat插件也设置成功。

1.由于tomcat6运行web应用时是在eclipse的workspace下建立一个server工程,而不是把web工程拷贝到tomcat路径下运行,所以在eclipse运行tomcat、使用它的连接池需要更改的是eclipse的workspace下server工程里面的server.xml配置,将来发布后再更改tomcat安装路径下conf下的server.xml。
在server.xml的host下加入:

<Context docBase="MyStruts" path="/MyStruts" reloadable="true">
<
Resource name="jdbc/DBUtil" auth="Container" type="javax.sql.DataSource"
               maxActive
="100" maxIdle="30" maxWait="10000"
               username
="sa" password="1234" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
               url
="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv" />
</Context>

其中,DBUtil任意,将来和下一步的web.xml里名字对应即可,url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv"按情况填写。
   此步骤可以用如下方法替代,在web工程的webcontent/web-inf目录下建立context.xml文件,这样避免两次去更改server.xml配置,也可使不同工程使用不同context配置,这是tomcat6提倡的方法,内容如下:

<Context docBase="MyStruts" path="/MyStruts" reloadable="true"><WatchedResource>WEB-INF/web.xml</WatchedResource><Resource name="jdbc/DBUtil" auth="Container" type="javax.sql.DataSource"
               maxActive
="100" maxIdle="30" maxWait="10000"
               username
="sa" password="1234" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
               url
="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv" />
</Context>

2.在webapps/项目名/WEB-INF中的web.xml中之前增加以下配置:

<resource-ref>
        
<description>SQL Server Datasource</description>
        
<res-ref-name>jdbc/DBUtil</res-ref-name>
        
<res-type>javax.sql.DataSource</res-type>
        
<res-auth>Container</res-auth>
</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

4.关键一步。确认sqlserver2000可以远程连接,这除了开放1433端口外还要,升级数据库到sp3或者sp4,否则连接会发出SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误。

5.编写java类,用于返回connection对象。

package com.lyb;import java.sql.Connection;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;public class DBUtil {public static Connection getConnection() {try {
            Context initContext 
= new InitialContext();
            
if (initContext == null)
                
throw new Exception("No Context");
            Context envContext 
= (Context) initContext.lookup("java:/comp/env");
            DataSource ds 
= (DataSource) envContext.lookup("jdbc/DBUtil");
            
if (ds != null) {
                Connection conn 
= ds.getConnection();
                
if (conn != null) {
                    
return conn;
                }
            }
        } 
catch (Exception e) {

            e.printStackTrace();
        }

return null;
    }
}

6.测试。
jsp文件内容:(注意不能用main函数测试,这样就脱离了Tomcat环境,只是一个java 应用,不可能使用tomcat连接池方法)

<%@   page contentType="text/html;charset=gb2312"%>
<%@   page import="java.sql.*"%>
<%@   page import="javax.sql.*"%>
<%@   page import="javax.naming.*"%>
<%@   page import="com.lyb.*"%><HTML>
<HEAD>
<TITLE>JSP测试页面</TITLE>
</HEAD>
<BODY>
<%
    Connection conn 
= DBUtil.getConnection();
    Statement st 
= conn.createStatement();
    
String sql = "select   *   from   goods";
    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>

6.运行结果。