[英]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 API或容器的java:
命名空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.