我思故我強

          Tomcat5+Mssql server 2000數據庫連接池配置之旅

          ?

          Tomcat相信大家已經很熟悉了,作為一種免費而強大的java web server,得到了很多java愛好者的青睞,最新版本的tomcat5支持servlet2.4和jsp2.0,今天我將采用Tomcat5和Ms sqlserver 000一起來開始數據庫連接池配置之旅。
          需要的準備
          1、jdk 我使用的版本1.4.01
          2、Tomcat 5 我使用的是5.0.16版本 下載地址:http://jakarta.apache.org/site/binindex.cgi
          3、Mssql server 2000 數據庫
          4、Mssql server 2000的官方jdbc driver ,可以到微軟的官方網站免費下載

          好了在安裝完上面的軟件之后,就進入配置實戰了:)

          一、找到jdbc的安裝目錄,把lib目錄下面的msbase.jar和mssqlserver.jar、msutil.jar三個文件一起copy到$CATALINA_HOME/common/lib/($CATALINA_HOME代表的是你的tomcat5的安裝目錄)

          二、用文本編輯器,我這是使用editplus(她可是我的摯愛奧)打開$CATALINA_HOME/conf/server.xml文件,找到配置context的地方,把下面的代碼
          粘貼到文件里面

          <Context path="/DBTest" docBase="D:\rautinee work\db\"
          ???????? debug="5" reloadable="true" crossContext="true">

          <Logger className="org.apache.catalina.logger.FileLogger"
          ????????????? prefix="localhost_DBTest_log." suffix=".txt"
          ????????????? timestamp="true"/>

          <Resource name="jdbc/TestDB"
          ??????????????? auth="Container"
          ??????????????? type="javax.sql.DataSource"/>

          <ResourceParams name="jdbc/TestDB">
          ???? <parameter>
          ?????? <name>factory</name>
          ?????? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
          ???? </parameter>

          ???? <!-- Maximum number of dB connections in pool. Make sure you
          ????????? configure your mysqld max_connections large enough to handle
          ????????? all of your db connections. Set to 0 for no limit.
          ????????? -->
          ???? <parameter>
          ?????? <name>maxActive</name>
          ?????? <value>100</value>
          ???? </parameter>

          ???? <!-- Maximum number of idle dB connections to retain in pool.
          ????????? Set to 0 for no limit.
          ????????? -->
          ???? <parameter>
          ?????? <name>maxIdle</name>
          ?????? <value>30</value>
          ???? </parameter>

          ???? <!-- Maximum time to wait for a dB connection to become available
          ????????? in ms, in this example 10 seconds. An Exception is thrown if
          ????????? this timeout is exceeded.??? Set to -1 to wait indefinitely.
          ????????? -->
          ???? <parameter>
          ?????? <name>maxWait</name>
          ?????? <value>10000</value>
          ???? </parameter>

          ???? <!-- MSSQLserver dB username and password for dB connections??? -->
          ???? <parameter>
          ????? <name>username</name>
          ????? <value>sa</value>
          ???? </parameter>
          ???? <parameter>
          ????? <name>password</name>
          ????? <value></value>
          ???? </parameter>

          ???? <!-- Class name for mssqlserver JDBC driver -->
          ???? <parameter>
          ??????? <name>driverClassName</name>
          ??????? <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
          ???? </parameter>

          ???? <!-- The JDBC connection url for connecting to your mssqlserver dB.-->
          ???? <parameter>
          ?????? <name>url</name>
          ?????? <value>jdbc:microsoft:sqlserver://localhost:1433;databasename=Northwind</value>
          ???? </parameter>
          </ResourceParams>
          </Context>

          注意:我本地的數據庫的sa的密碼為空,數據庫使用的是Northwind,我的目錄名DBTest,他的目錄是D:\rautinee work\db\

          打開DBTest下面的web.xml文件,用下面的代碼替換原來的內容

          <?xml version="1.0" encoding="ISO-8859-1"?>
          ???? <!DOCTYPE web-app PUBLIC
          ???? "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
          ???? "http://java.sun.com/dtd/web-app_2_3.dtd">
          <web-app>
          <description>MSSql server Test App</description>
          <resource-ref>
          ?????? <description>DB Connection</description>
          ?????? <res-ref-name>jdbc/TestDB</res-ref-name>
          ?????? <res-type>javax.sql.DataSource</res-type>
          ?????? <res-auth>Container</res-auth>
          </resource-ref>
          </web-app>

          ok,配置完成,下面的工作是需要編寫兩個文件測試一下,連接是否成功。

          這里我用了http://jakarta.apache.org上面的例子

          首先是bean文件

          package foo;

          import javax.naming.*;
          import javax.sql.*;
          import java.sql.*;

          public class DBTest {

          String foo = "Not Connected";
          int bar = -1;
          ???
          public void init() {
          ???? try{
          ?????? Context ctx = new InitialContext();
          ?????? if(ctx == null )
          ?????????? throw new Exception("Boom - No Context");

          ?????? DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TestDB");

          ?????? if (ds != null) {
          ???????? Connection conn = ds.getConnection();
          ?????????????
          ???????? if(conn != null)??? {
          ???????????? foo = "Got Connection "+conn.toString();
          ???????????? Statement stmt = conn.createStatement();
          ???????????? ResultSet rst =
          ???????????????? stmt.executeQuery("select * from orders");
          ???????????? if(rst.next()) {
          ??????????????? foo=rst.getString("CustomerID");
          ??????????????? bar=rst.getInt("OrderID");
          ???????????? }
          ???????????? conn.close();
          ???????? }
          ?????? }
          ???? }catch(Exception e) {
          ?????? e.printStackTrace();
          ???? }
          }

          public String getFoo() { return foo; }
          public int getBar() { return bar;}
          }


          然后是index.jsp文件

          <html>
          <head>
          ???? <title>DB Test</title>
          </head>
          <body>

          <%
          ???? foo.DBTest tst = new foo.DBTest();
          ???? tst.init();
          %>

          <h2>Ms sql server 2000 java search Results</h2>
          ???? Foo <%= tst.getFoo() %><br/>
          ???? Bar <%= tst.getBar() %>

          </body>
          </html>
          'www.knowsky.com

          編譯運行,如果不出意外,應該檢索到一條記錄,

          我的ie中顯示的是
          Ms sql server 2000 java search Results
          Foo VINET
          Bar 10248

          ok,配制成功!

          posted on 2007-11-02 10:53 李云澤 閱讀(190) 評論(0)  編輯  收藏 所屬分類: Tomcat

          主站蜘蛛池模板: 翼城县| 湖州市| 自治县| 什邡市| 濮阳县| 余姚市| 垦利县| 富平县| 靖江市| 建阳市| 鹤山市| 尖扎县| 陵川县| 桂东县| 安龙县| 花莲市| 山阴县| 宁蒗| 葫芦岛市| 五华县| 广南县| 清镇市| 宜春市| 河西区| 延安市| 仪征市| 玛沁县| 普陀区| 怀安县| 共和县| 巴塘县| 土默特右旗| 巫山县| 乌审旗| 蒙阴县| 子长县| 和政县| 左权县| 涿鹿县| 深泽县| 长垣县|