首先在weblogic8.x中配置好连接池和数据源,并记下JNDI的名字。
然后在JB2006中读取,完整代码如下:
package wls_datasource;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import java.util.Properties;
import javax.rmi.PortableRemoteObject;
/**
* 在JB2006中调用Weblogic 8.x配置的数据源。
* JNDI的名称为:ODT
* 数据库为Oracle 10g
* @author not attributable
* @version 1.0
*/
public class Oracle_Test1 {
public Oracle_Test1() {
}
public static void main(String[] args) {
Oracle_Test1 oracle_test1 = new Oracle_Test1();
DataSource ds=null;
Context ctx=null;
Connection con=null;
try {
Properties p=new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
p.put(Context.PROVIDER_URL, "t3://localhost:7001");
ctx=new InitialContext(p);
ds=(javax.sql.DataSource)ctx.lookup("ODT"); //ODT为数据源在JNDI中的名称
}
catch (Exception ex) {
System.out.println("Init Error:"+ex);
}
Statement statement=null;
ResultSet rst=null;
try {
con=ds.getConnection();
if(con==null)
System.out.println("con is null");
statement=con.createStatement();
if(statement==null)
System.out.println("statement is null");
rst=statement.executeQuery("select object_name,object_type from user_objects where object_type='TABLE'");
System.out.println("/t/t object_name /t/t/t/t object_type");
while(rst.next())
{
System.out.print("/t/t "+rst.getString("object_name"));
System.out.println("/t/t/t/t "+rst.getString("object_type"));
}
rst.close();
}
catch (Exception ex) {
System.out.println("Error Code="+ex.getMessage());
}
finally{
try {
if(statement!=null)
statement.close();
if(con!=null)
con.close();
}
catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
}