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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

JNDI配置DataResource代替JDBC连接数据库

發布時間:2024/9/19 数据库 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JNDI配置DataResource代替JDBC连接数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JNDI配置DataResource代替JDBC連接數據庫

1.JDBC和JNDI

? JDBC就是我們連接數據庫的一個標準的Java API,JDBC提供了一系列接口和規范,各個數據庫公司根據其JDBC接口和規范,開發出各自的連接和操作數據庫的.jar包。通過這些一系列的jar包和JDBC定義的一組類和接口,Java應用程序開發人員使用它來訪問數據庫和執行SQL語句。

? JNDI(Java Name Directory Interface,Java命名和目錄接口),它不僅僅是進行數據庫定位的,它是給當前應用服務器所管理的所有資源一個唯一的標識,包括數據庫,網頁,文件,連接池等等。JNDI是一種標識,通過標識來 獲取對應的資源。(或許很難懂,看下面的操作就明白了)

2.JNDI配置DataResource

在tomcat的conf/context.xml中配置

<!-- name:表示以后要查找的名稱。通過此名稱可以找到DataSource,此名稱任意更換,但是程序中最終要查找的就是此名稱,auth:由容器進行授權及管理,指的用戶名和密碼是否可以在容器上生效 type:此名稱所代表的類型,現在為javax.sql.DataSourcemaxActive:表示一個數據庫在此服務器上所能打開的最大連接數 maxIdle:表示一個數據庫在此服務器上維持的最小連接數maxWait:最大等待時間(毫秒)。當連接等待maxWait沒被使用,將銷毀連接釋放資源。username:數據庫連接的用戶名password:數據庫連接的密碼driverClassName:數據庫連接的驅動程序url:數據庫連接的地址 --> <Resource name="DBConn" auth="Container" type="javax.sql.DataSource"maxActive="100" maxIdle="30" maxWait="10000"username="root" password="yourpwd" driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/test" />

在項目web.xml文件中添加配置

<resource-ref><description>DB Connection</description><!--其內容對應上面前三個參數一一對應,目的是標識數據源--><res-ref-name>DBConn</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth> </resource-ref>

3.用DataSource中的連接來連接數據庫

? 與傳統的JDBC不同,這里是直接通過數據源來獲取連接數據庫的連接,可以把數據源簡單理解成連接池,我們在連接池中獲取連接。

? 如果使用JDBC來連接數據庫,將會涉及頻繁的數據庫連接的創建和銷毀,而數據庫連接的創建是很耗時和吃性能的。所以我們利用JNDI來配置好數據源,在數據源里面已經有已經創建好的連接,我們使用是只需要在連接池里面拿連接就可以了,用完以后將連接放回到連接池之中。無需在用JDBC來創建連接和銷毀。

? 數據源的存在提高了數據庫連接的復用,提高了性能,而且在更數據庫連接時只有該配置就可以了。

DataSource ds = null; Connection connect = null; try {//獲取Context.xml中的配置Context initContext = new InitialContext();//獲取配置中的數據源(連接池)DataSource ds = (DataSource)initContext.lookup("java:comp/env/DBConn");//數據源中獲取連接(在連接池里面拿一個連接出來)connect = ds.getConnection();//后面都是跟JDBC一樣的數據庫操作//········} catch (Exception e) {e.printStackTrace();}finally {//5、關閉數據連接,關閉的時候其實是將連接放回到連接池之中Connection.close();} 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的JNDI配置DataResource代替JDBC连接数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。