JavaWeb:Tomcat下配置数据源连接数据库
習慣了以硬編碼的形式在程序中建立數據庫連接,用完就在finally語句塊中close一下就結束了。對于重視數據庫連接數的應用來說,這樣子做會耗費大量的時間和數據庫資源,而且硬編碼的形式也不甚靈活。
?
在Tomcat這個Java Web容器下通過配置DataSource(數據源)對象可以解決上面所述的問題。JDBC中的javx.sql.DataSource接口負責建立于數據庫的連接,程序中直接從數據源中獲取數據庫連接。DataSource對象由Servlet容器Tomcat進行管理,其實獲取數據庫連接是從連接池中選取空閑連接。它基于Java中的JNDI(Java 命名與目錄接口)來實現。
?
配置數據源context.xml:
在Java Web應用的META-INF目錄下新建一個context.xml配置文件,其中的<Resource>元素用于定義JNDI資源,內容如下:
?
<Resource>元素的屬性說明:
?
Name:指定Resource資源的JNDI名稱;
auth:可選填Container或Application,指定Resource的管理者;
type:指定Resource資源的Java類名;
maxActive:設置數據庫連接池中活動狀態連接的最大數目,為0則不受限制;
maxIdle:設置數據庫連接池中空閑狀態連接的最大數目,為0則不受限制;
maxWait:設置數據庫連接池中空閑狀態連接的最長等待時間,超時則拋出異常,為-1則可無限等待;
username:指定數據庫的用戶名;
password:指定連接數據庫的密碼;
driverClassName:指定數據庫的JDBC驅動器的Driver實現類名字(這里為MySQL數據庫連接);
url:連接數據庫的url。
?
注:可在<CATALINA_HOME>/conf/server.xml 文件中的對應<Host>元素中如上配置<Resource>子元素以供Tomcat容器內的多個Web應用使用。
?
配置JNDI資源引用web.xml:?
Java Web應用中要使用JNDI資源,必須在web.xml中配置對該JNDI資源的引用<resource-ref>元素。內容如下:
?
<resource-ref>元素的子元素說明:
?
description:對所引用JNDI資源的描述;
res-ref-name:引用的JNDI資源的名稱,與上面<Resource>元素中的name屬性一致;
res-type:引用的JNDI資源的類名稱,與上面<Resource>元素中的type屬性一致;
res-auth:引用資源的管理者,上面<Resource>元素中的auth屬性一致;
?
Web應用中使用數據源:?
使用DataSource連接數據庫,不再用以下方式來建立到數據庫的連接了。
?
而是使用相對簡單些的JNDI資源訪問方式lookup方法,如下:
?
?
注:使用DataSource方式連接數據庫,當使用完數據庫操作之后調用各種資源對象的close方法時,由Tomcat容器調回這些連接到連接池中進行管理,而不是直接與數據庫斷開連接。
轉載于:https://blog.51cto.com/haolloyin/396210
總結
以上是生活随笔為你收集整理的JavaWeb:Tomcat下配置数据源连接数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python web shell
- 下一篇: 快速找到Word 2007长文档的某一页