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连接数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IntelliJ IDEA部署javaw
- 下一篇: 想要打造整洁而舒适的电脑桌想要打造整洁而