Weblogic中如何使用dataSource建立数据库连接

How to establish database connection by using dataSource in Weblogic

我需要你的帮助来建立与 weblogic 数据源的连接。在 java bean 的前面,我使用以下代码建立与数据库的连接:

PreparedStatement ps = null;
Connection con = null;

try {
     con = DriverManager.getConnection("jdbc:oracle:thin:@xx.xx.xx.xx:1521:xxx", "hr", "hr123");

      sql = " select * from employees";
      ps = con.prepareStatement(sql);
     }
catch (Exception e) {
      System.err.print(e);
      e.printStackTrace();
      } 

现在,我需要使用 JNDI 名称从 weblogic 数据源获取连接。我已经创建了数据源,它被称为 jdbc/HR 我尝试了下面的代码,但我没有成功建立连接:

Context ctx = null;
Hashtable ht = new Hashtable();
java.sql.Connection conn = null;
ht.put(Context.INITIAL_CONTEXT_FACTORY,  "weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://localhost:7001");

 try {
      ctx = new InitialContext(ht);
      javax.sql.DataSource ds = 
        (javax.sql.DataSource) ctx.lookup("demoDataSource");
      conn = ds.getConnection();
     }

解决方法是:

 Connection con = null;
 DataSource datasource = null;

 Context initialContext = new InitialContext();

 // "jdbc/MyDBname" >> is a JNDI Name of DataSource on weblogic

 datasource = (DataSource) initialContext.lookup("jdbc/MyDBname");

 con = datasource.getConnection();