簡體   English   中英

使用JNDI建立數據庫連接,但不使用任何屬性文件

[英]Making connection to database using JNDI, but not using any properties file

我正在嘗試使用JNDI方法連接到數據庫服務器。 但是我不想使用任何jndi.properties文件或web.xml文件中的任何更改作為參數。

我有一個屬性的hashMap連接到數據庫服務器,我想做這樣的事情

HashMap map = new HashMap();
Hashtable<String, String> authEnv = new Hashtable<String, String>();
authEnv.put(Context.INITIAL_CONTEXT_FACTORY, "javax.sql.DataSource");
authEnv.put(Context.PROVIDER_URL, "jdbc:oracle:thin:@xyz.corporate.test.com:9822:mydb");
authEnv.put(Context.SECURITY_PRINCIPAL, "testuser");
authEnv.put(Context.SECURITY_CREDENTIALS, "testpass");
ctx = new InitialContext(authEnv);
ctx.bind("myjndi", "jdbc:oracle:thin:@xyz.corporate.test.com:9822:mydb");
System.out.println("Context is " + ctx);
ds = (DataSource) ctx.lookup("myjndi");

但是我的上下文尚未初始化。 那就是為什么我沒有得到任何數據源對象。 我創建了一個對象“ myjndi”,並嘗試用它來出價。 但是它不起作用。 請幫我弄清楚我該如何與數據庫建立這種連接。

從頭到尾這是完全錯誤的。

  • javax.sql.DataSource不能用作JNDI初始上下文工廠
  • “ jdbc:oracle:thin:@ xyz.corporate.test.com:9822:mydb”不是JNDI提供程序URL
  • 將數據庫URL放入JNDI也很奇怪。

您不能隨便化妝。 您應該僅以常規方式使用JDBC API或容器的java:命名空間。

暫無
暫無

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

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