<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

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

      [摘要]Tomcat相信大家已經很熟悉了,作為一種免費而強大的java web server,得到了很多java愛好者的青睞,最新版本的tomcat5支持servlet2.4和jsp2.0,今天我將采用Tomcat5和Ms sqlserver 000一起來開始數據庫連接池配置之旅。需要的準備1、jdk 我...

      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,配制成功!

      參考文檔:
      http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html 上面有mysql和oracle8i的連接教程,有興趣的朋友可以上去看一下。

      作者 海仔  email:rautinee@21cn.com  http://www.tryitsoft.com




      日韩精品一区二区三区高清