ice world

          There is nothing too difficult if you put your heart into it.
          posts - 104, comments - 103, trackbacks - 0, articles - 0

          Tomcat的數據源配置

          Posted on 2011-04-16 13:19 IceWee 閱讀(902) 評論(0)  編輯  收藏 所屬分類: Java
          Tomcat本身并不具備提供數據源的能力,它需要借助其他的開源數據源(如DBCP)類實現。通過Tomcat提供的數據源,我們的程序中可以通過JNDI來訪問數據源。

          下面以DBCP為例,簡介數據源的配置。

          數據源的配置也有兩種方式,一種是通過修改Tomcat系統文件來配置全局數據源,一種是通過增加用戶的web部署文件來配置局部數據源。全局數據源的意義是所有部署在Tomcat內的web應用只要遵循規定都可以訪問的數據源,不建議此方式,可能會導致混亂。相對而言,增加用戶自己的web部署文件就比較合適一些,因為該數據源只針對某個web應用生效,其他web應用無法訪問該數據源,安全一些,也沒全局數據源那么混亂。

          配置數據源需要數據源的jar文件,如DBCP數據源就需要在Tomcat的common/lib下增加一個commons-dbcp.jar文件,還需要commons-poo.jar和commons-collections.jar的支持,一般在Tomcat里都會有這三個jar文件,最好還是檢查一下。

          在Tomcat的conf\localhost下創建自己的web部署配置文件,仿佛見《Tomcat中部署web應用的方式》,在Context元素下增加子元素,以Oracle數據庫為例,如:

          <Resource name="jdbc/dataSource" 
                  auth
          ="Container"     
                  description
          ="DB Connection"     
                  type
          ="javax.sql.DataSource"     
                  username
          ="username" 
                  password
          ="password"     
                  driverClassName
          ="oracle.jdbc.driver.OracleDriver"     
                  url
          ="jdbc:oracle:thin:@192.168.0.10:1521:db" 
                  maxActive
          ="5" />

          程序中訪問此數據源的代碼:

          // 初始化
          ContextContext ctx = new InitialContext();

          // 獲取數據源,其中java:comp/env是Tomcat規定的,Tomcat提供的JNDI綁定都必須加該前綴
          DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/dataSource");

          // 獲取數據庫鏈接
          Connection conn = ds.getConnection();

          // 一系列數據庫操作
          ... ...

          上面介紹了局部數據源的配置方法,全局數據源的配置和這差不多,只不過要是將Resource標簽放在server.xml的<GlobalNamingResources>元素里。

          主站蜘蛛池模板: 武乡县| 金山区| 丘北县| 宁津县| 阿拉善右旗| 富源县| 固镇县| 萍乡市| 纳雍县| 镇沅| 皋兰县| 太康县| 马山县| 景东| 嫩江县| 海门市| 清新县| 花莲县| 富裕县| 格尔木市| 巩留县| 齐齐哈尔市| 福安市| 榕江县| 夏津县| 阳原县| 历史| 平南县| 当涂县| 汤原县| 称多县| 福泉市| 新蔡县| 彰武县| 临夏市| 分宜县| 都昌县| 福泉市| 山丹县| 本溪| 临沂市|