簡體   English   中英

配置數據源並將其注冊到 JNDI

[英]Configuring DataSource and Registering it with JNDI

我跟進了數據源的java doc java doc

我不理解下面的代碼片段。

我創建了一個連接池數據源並注冊到 jndi。

cpds.setServerName("creamer");
cpds.setDatabaseName("COFFEEBREAK");
cpds.setPortNumber(9040);
cpds.setDescription("Connection pooling for " + "COFFEEBREAK DBMS");

Context ctx = new InitialContext();
ctx.bind("jdbc/pool/fastCoffeeDB", cpds);

現在我們可以檢索這個連接池數據源

Context ctx = new InitialContext();
ctx.lookup("jdbc/pool/fastCoffeeDB");

我創建另一個數據源並注冊它。

com.applogic.PooledDataSource ds = new 
com.applogic.PooledDataSource();
ds.setDescription("produces pooled connections to COFFEEBREAK");
ds.setDataSourceName("jdbc/pool/fastCoffeeDB");

Context ctx = new InitialContext();
ctx.bind("jdbc/fastCoffeeDB", ds);

現在我們可以檢索這個連接池數據源

ctx = new InitialContext();
ds = (DataSource)ctx.lookup("jdbc/fastCoffeeDB");

我不清楚 setDataSourceName。

我們將 ConnectionPoolDS 添加到 PoolDataSource 中。

當我們檢索數據源時

 ds = (DataSource)ctx.lookup("jdbc/fastCoffeeDB");

那么從這里返回的數據源是 PoolDataSource 類型還是 ConnectionPoolDS 類型?。

使用這個

jdbc/pool/fastCoffeeDB JNDI 你直接指向 COFFEEBREAK 數據庫。

在第二個 JNDI

jdbc/fastCoffeeDB

您正在使用以下語句

ds.setDataSourceName("jdbc/pool/fastCoffeeDB");

在上面你指向舊的 JNDI 名稱,這意味着你間接指向 COFFEEBREAK 數據庫

所以從語句 ds = (DataSource)ctx.lookup("jdbc/fastCoffeeDB"); 你會得到ConnectionPoolDS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM