Context ctx = new InitialContext();
DataSource ds =(DataSource) ctx.lookup("java:comp/env/jdbc/OracleDB");
Connection conn = ds.getConnection();
DataSource ds =(DataSource) ctx.lookup("java:comp/env/jdbc/OracleDB");
Connection conn = ds.getConnection();
这是在Weblogic中的写法:
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
//用户是否为空
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
}
Context ctx= new InitialContext(properties); DataSource ds =(DataSource) ctx.lookup("java:comp/env/jdbc/OracleDB");
Connection conn = ds.getConnection();查找相关资料,把
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
换成相应的tomcat对应的上下文工厂,应该就可以了。
import javax.sql.*;
import java.sql.*; public class DBTest { String foo = "Not Connected";
int bar = -1;
public void init() {
try{
Context ctx = new InitialContext();
if(ctx == null)
throw new Exception("Boom - No Context"); DataSource ds =
(DataSource)ctx.lookup(
"java:comp/env/jdbc/TestDB"); if (ds != null) {
Connection conn = ds.getConnection();
if(conn != null) {
foo = "Got Connection "+conn.toString();
Statement stmt = conn.createStatement();
ResultSet rst =
stmt.executeQuery(
"select id, foo, bar from testdata");
if(rst.next()) {
foo=rst.getString(2);
bar=rst.getInt(3);
}
conn.close();
}
}
}catch(Exception e) {
e.printStackTrace();
}
}