日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java配置jndi连接数_JavaWeb:Tomcat下配置数据源(JNDI)连接数据库 | 学步园

發(fā)布時間:2024/9/27 java 111 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java配置jndi连接数_JavaWeb:Tomcat下配置数据源(JNDI)连接数据库 | 学步园 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

習慣了以硬編碼的形式在程序中建立數(shù)據(jù)庫連接,用完就在finally語句塊中close一下就結(jié)束了。對于重視數(shù)據(jù)庫連接數(shù)的應(yīng)用來說,這樣子做會耗費大量的時間和數(shù)據(jù)庫資源,而且硬編碼的形式也不甚靈活。

在Tomcat這個Java Web容器下通過配置DataSource(數(shù)據(jù)源)對象可以解決上面所述的問題。JDBC中的javx.sql.DataSource接口負責建立于數(shù)據(jù)庫的連接,程序中直接從數(shù)據(jù)源中獲取數(shù)據(jù)庫連接。DataSource對象由Servlet容器Tomcat進行管理,其實獲取數(shù)據(jù)庫連接是從連接池中選取空閑連接。它基于Java中的JNDI(Java?命名與目錄接口)來實現(xiàn)。

配置數(shù)據(jù)源context.xml:

在Java Web應(yīng)用的META-INF目錄下新建一個context.xml配置文件,其中的元素用于定義JNDI資源,內(nèi)容如下:

name="jdbc/?DBname?"

auth="Container"

type="javax.sql.DataSource"

maxActive="100"?maxIdle="30"?maxWait="10000"

username="root"?password="123"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/?DBname?autoReconnect=true"

/>

元素的屬性說明:

Name:指定Resource資源的JNDI名稱;

auth:可選填Container或Application,指定Resource的管理者;

type:指定Resource資源的Java類名;

maxActive:設(shè)置數(shù)據(jù)庫連接池中活動狀態(tài)連接的最大數(shù)目,為0則不受限制;

maxIdle:設(shè)置數(shù)據(jù)庫連接池中空閑狀態(tài)連接的最大數(shù)目,為0則不受限制;

maxWait:設(shè)置數(shù)據(jù)庫連接池中空閑狀態(tài)連接的最長等待時間,超時則拋出異常,為-1則可無限等待;

username:指定數(shù)據(jù)庫的用戶名;

password:指定連接數(shù)據(jù)庫的密碼;

driverClassName:指定數(shù)據(jù)庫的JDBC驅(qū)動器的Driver實現(xiàn)類名字(這里為MySQL數(shù)據(jù)庫連接);

url:連接數(shù)據(jù)庫的url。

注:可在/conf/server.xml?文件中的對應(yīng)元素中如上配置子元素以供Tomcat容器內(nèi)的多個Web應(yīng)用使用。

配置JNDI資源引用web.xml:

Java Web應(yīng)用中要使用JNDI資源,必須在web.xml中配置對該JNDI資源的引用元素。內(nèi)容如下:

DB?Connection

jdbc/DBname?

javax.sql.DataSource

Container

元素的子元素說明:

description:對所引用JNDI資源的描述;

res-ref-name:引用的JNDI資源的名稱,與上面元素中的name屬性一致;

res-type:引用的JNDI資源的類名稱,與上面元素中的type屬性一致;

res-auth:引用資源的管理者,上面元素中的auth屬性一致;

Web應(yīng)用中使用數(shù)據(jù)源:

使用DataSource連接數(shù)據(jù)庫,不再用以下方式來建立到數(shù)據(jù)庫的連接了。

Connection?conn?=?null;

Class.forName("com.mysql.jdbc.Driver");

String?dbUrl?=?"jdbc:mysql://localhost:3306/DBname";

String?dbUser?=?"root";

String?dbPwd?=?"123";

conn?=?DriverManager.getConnection(dbUrl,?dbUser,?dbPwd);

而是使用相對簡單些的JNDI資源訪問方式lookup方法,如下:

Context?sourceCtx?=?new?InitialContext();

DataSource?ds?=

(DataSource)?sourceCtx.lookup("java:comp/env/jdbc/?DBname?");

conn?=?ds.getConnection();

注:使用DataSource方式連接數(shù)據(jù)庫,當使用完數(shù)據(jù)庫操作之后調(diào)用各種資源對象的close方法時,由Tomcat容器調(diào)回這些連接到連接池中進行管理,而不是直接與數(shù)據(jù)庫斷開連接。

總結(jié)

以上是生活随笔為你收集整理的java配置jndi连接数_JavaWeb:Tomcat下配置数据源(JNDI)连接数据库 | 学步园的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。