熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

怎樣做Tomcat4.1.31的數據庫連接池配置

2013-11-23 20:37:27  來源: Java開源技術 

  Tomcat簡介
  
  Tomcat是Apache Jakarta的子項目之一是Sun公司推薦的JSPServlet容器作為一款優秀的應用服務器Tomcat提供了數據庫連接池SSLProxy等許多通用組件功能其中連接池是以上版本的新增功能應用非常廣泛
  
  該文配置環境
  
  Tomcat + jdk + Sql Server + Win AS
  
  對Tomcat的DBCP配置
  
  這裡將連接池置於tomcat的工程目錄中的blog子文件夾(新建)下JNDI名設為jdbc/blog數據庫服務器IP為localhostSID為blog配置步驟如下
  
  第一步配置serverxml:
  
  在serverxml中找到
  
  <! Tomcat Root Context >
  <!?
  <Context path= docBase=ROOT debug=/>
  >
  
  將其改為
  
  <Context path=/blog docBase=blog debug= reloadable=true>
  <Resource name=jdbc/blog auth=Container type=javaxsqlDataSource/>
  <ResourceParams name=jdbc/blog>
  <parameter>
  <name>factory</name>
  <value>monsdbcp
  BasicDataSourceFactory</value>
  </parameter>
  <parameter>
  <name>driverClassName</name>
  <value>commicrosoftjdbc
  sqlserverSQLServerDriver</value>
  </parameter>
  <parameter>
  <name>url</name>
  <value>jdbc:microsoft:sqlserver
  ://localhost:;databaseName=blog</value>
  </parameter>
  <parameter>
  <name>username</name>
  <value>sa</value>
  </parameter>
  <parameter>
  <name>password</name>
  <value>sa</value>
  </parameter>
  <parameter>
  <name>maxActive</name>
  <value></value>
  </parameter>
  <parameter>
  <name>maxIdle</name>
  <value></value>
  </parameter>
  <parameter>
  <name>maxWait</name>
  <value></value>
  </parameter>
  </ResourceParams>
  </Context>
  
  參數說明
  
  Resource項
  
  <Resource name=jdbc/blog
  auth=Container
  type=javaxsqlDataSource/>
  
  Resource項(即連接池的DataSource對象)個屬性nameauthtypename項是JNDI的名稱定義程序通過JNDI才能找到此對象這裡取名jdbc/Sblogauth項即連接池管理權屬性這裡取值Container申明為容器管理type項即對象的類型這裡取值javaxsqlDataSource申明為數據庫連接池
  
  在接下來的域內容裡包含四個參數userpassworddriverClassNamedriverName依次為數據庫的用戶名密碼JDBC驅動和數據庫地址
  
  factory參數
  
  <parameter>
  <name>factory</name>
  <value>monsdbcp
  BasicDataSourceFactory</value>
  </parameter>
  
  即基礎對象工廠這裡取值monsdbcpBasicDataSourceFactory即DBCP自帶的工廠也可以用別的
  
  DriverClassName參數
  
  <parameter>
  <name>driverClassName</name>
  <value>commicrosoftjdbc
  sqlserverSQLServerDriver</value>
  </parameter>
  
  即數據庫的JDBC驅動名稱具體值為
  
  Sql Server : commicrosoft
  jdbcsqlserverSQLServerDriver
  
  首先要下載安裝sqlserverjdbc驅動然後將其lib下的三個jar文件放到tomcat/common/lib下
  
  MySql
  orggjtmmmysqlDriver
  
  MySql的JDBC驅動包mmmysqljar
  
  Oracle oraclejdbcdriverOracleDriver
  
  Oracle的JDBC驅動包名叫classesjar一般位於Oracle安裝目錄下的ora\jdbc\lib目錄下初始擴展名為ZIP需要手工把classeszip改名為classesjar並放到tomcat/common/lib下oraclejdbcdriverOracleDriver此類由classesjar提供
  
  url參數
  
  <parameter>
  <name>url</name>
  <value>jdbc:microsoft:sqlserver:
  //localhost:;databaseName=blog</value>
  </parameter>
  
  即數據庫的地址(不同的數據庫其地址都不相同)
  
  username參數
  
  <parameter>
  <name>username</name>
  <value>sa</value>
  </parameter>
  
  即連接數據庫的用戶名
  
  password參數
  
  <parameter>
  <name>password</name>
  <value>**</value>
  </parameter>
  
  即連接數據庫的密碼
  
  maxActivemaxIdle和maxWait參數
  
  <parameter>
  <name>maxActive</name>
  <value></value>
  </parameter>
  <parameter>
  <name>maxIdle</name>
  <value></value>
  </parameter>
  <parameter>
  <name>maxWait</name>
  <value></value>
  </parameter>
  
  maxActive是最大激活連接數這裡取值為表示同時最多有個數據庫連 接maxIdle是最大的空閒連接數這裡取值為表示即使沒有數據庫連接時依然可以保持空閒的連接而不被清除隨時處於待命狀態MaxWait是最大等待秒鐘數這裡取值表示無限等待直到超時為止也可取值表示秒後超時
  
  第二步配置webxml
  
  打開webapps/ROOT/WEBINF下webxml加入如下內容
  
  <resourceref>步為營
  <description>SqlServer
  Datasource example</description>
  <resrefname>jdbc/blog</resrefname>
  <restype>javaxsqlDataSource</restype>
  <resauth>Container</resauth>
  </resourceref>
  
  第三步配置tomcat(添加類)
  
  將Microsoft SQL Server Driver for JDBC\lib目錄下的三個jar文件拷貝到Tomcat安裝目錄的common\lib下配置完成
  
  測試代碼
  
  數據庫如下
  
  新建一個名為blog的數據庫在裡面創建一個表格
  
  Create table test(id varchar()
  name varchar());
  
  寫一個jsp文件(testdbjsp)將其置於webapps/ROOT目錄下打開tomcat運行該頁面進行測試頁面testdbjsp的內容如下
  
  <%@ page contentType=
  text/html;charset=GBK%>
  <%@ page import= javasql* %>
  <%@ page import= javaxnaming* %>
  <%
  try{
  Context initCtx =
  new InitialContext();
  Context ctx = (Context)
  initCtxlookup(java:comp/env);
  //獲取連接池對象
  Object obj =
  (Object) ctxlookup(jdbc/blog);
  //類型轉換
  javaxsqlDataSource
  ds = (javaxsqlDataSource)obj;
  Connection conn = dsgetConnection();
  Statement stmt = conncreateStatement();
  String strSql =
   insert into test(idname)
  values(′′fany′);
  stmtexecuteUpdate(strSql);
  strSql = select idname from test ;
  ResultSet rs = stmtexecuteQuery(strSql);
  if(rsnext()){
  outprintln(rsgetString());
  outprintln(rsgetString());
  }
  }catch(Exception ex){
  exprintStackTrace();
  throw new SQLException
  (cannot get Connection pool);
  }
  %>
  
  運行tomcat打開浏覽器輸入正常情況下會在頁面上看到 fany輸出
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28775.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.