訪問其它資源或者文件時就要用JNDI服務來定位了,通過名字來獲得對應的對象或者服務。比如訪問,文件,數據庫等。
JNDIjava命名與目錄接口(java Naming and Directory Interface)
數據源--javax.sql..DataSource接口負責建立與數據庫的連接,在DataSource中事先建立多個數據庫連接,這些數據庫連接保存在連接池(Connection Pool)裏。
用JNDI獲得數據源對象過程:
1.配置Context.xml文件,添加<Resource/>元素;
2.配置web.xml文件,添加<resource-ref></resource-ref>
3.添加驅動。
4.編碼,使用lookup()方法獲得數據源對象。如://初始化
Context ctx=new InitialContext();
//獲取與邏輯名相關的數據源對象
DataSource ds=(DataSource)ctx.lookup("java:comp/env/數據源名稱");
//通過DataSource的getConnection()方法獲得數據連接對象。
Connection conn=ds.getConnection();
...............
最後不要忘記調用close()方法讓Connection回覆空閒。
lookup(String name)返回與指定的名字綁定的對象。
訪問數據庫時常出的錯誤:
Cannot load JDBC driver class-沒有添加驅動
Cannot create JDBC driver of class '' for connect URL 'null'-連接路徑爲空,檢查Context.xml中的配置,確保信息正確。
Name jdbc is not bound in this Context-jdbc名字沒有綁定到當前上下文,看看lookup()和context.xml中的名字是不是一致的,並且,名稱是java:comp/env/+數據源名稱。
加油!繼續學習!