Cyh的博客

          Email:kissyan4916@163.com
          posts - 26, comments - 19, trackbacks - 0, articles - 220
          前提假設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>


                                                                                                                 --    學海無涯
                  

          主站蜘蛛池模板: 哈巴河县| 文昌市| 景德镇市| 达拉特旗| 龙江县| 沂源县| 宜昌市| 桃源县| 汕头市| 磴口县| 二连浩特市| 吉林市| 江源县| 普宁市| 兴隆县| 湘潭县| 富顺县| 峨山| 昭平县| 宝坻区| 林甸县| 开封市| 湘乡市| 三门县| 寻乌县| 衡阳县| 瑞金市| 中西区| 睢宁县| 怀仁县| 灵武市| 区。| 漳平市| 准格尔旗| 元江| 汶上县| 玉屏| 抚州市| 五家渠市| 祁门县| 合阳县|