JNDI
與 JDBC 的區別
JDBC:是 java 去找資料庫驅動。
JNDI:是通過伺服器配置(ex: Tomcat)的配置文件,來尋找資料來源(DataSource)。
Java Naming And Directory Interface
JNDI 已成為 J2EE 的標準之一,所有的 J2EE 容器都必須提供一個 JNDI 的伺服器。
配置方式
透過容器 Context.xml 配置檔
<Resource
name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:XXXDB://localhost:3306/TestDB"
username="matthung"
password="12345"
maxTotal="100"
maxIdle="20"
maxWaitMillis="10000"
minIdle="5"/>
透過程式
//取得環境
Context ctx = new java.naming.InitialContext();
//取得資料來源
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/XXXDB");
//透過 SQL 操作資料庫
conn=ds.getConnection();
.
.
.
//關閉連線
conn.close();
解決問題
資料庫名稱修改 、使用者和 SQL 都可能需要改變,導致 JDBC URL需要修改。
資料庫可能改用別的產品,如改用MySQL 或者Oracle,導致 JDBC驅動和類名需要修改。
隨着實際使用連線數的增加,原配置的連接池參數可能需要調整。
核心重點:開發人員不需知道連接資料庫的驅動、URL格式、資料庫名稱等等。 將其交給容器來配置管理,開發人員只需要對這些配置和管理進行參考即可。
Last updated
Was this helpful?