public Connection getConnection() throws SQLException {
javax.sql.DataSource ds = null;
java.sql.Connection con = null;
try { javax.naming.InitialContext ctx = new javax.naming.InitialContext();
ds = (javax.sql.DataSource) ctx.lookup("jdbc/OracleDs");
} catch (NamingException e) {
e.printStackTrace();
}
return ds.getConnection() ;
}
返回一个连接的代码,其他的就一样了。
javax.sql.DataSource ds = null;
java.sql.Connection con = null;
try { javax.naming.InitialContext ctx = new javax.naming.InitialContext();
ds = (javax.sql.DataSource) ctx.lookup("jdbc/OracleDs");
} catch (NamingException e) {
e.printStackTrace();
}
return ds.getConnection() ;
}
返回一个连接的代码,其他的就一样了。
public CachedRowSet executeQuery(String sql) throws java.sql.SQLException {
CachedRowSet cst = new CachedRowSet();
try {
conn = db.getConnection();
ps = conn.createStatement();
ps.setFetchSize(100);
rs = ps.executeQuery(sql);
cst.populate(rs);
}
catch (SQLException e) {
throw new SQLException("数据查询出错" + e.getMessage());
} finally {
try {
db.CleanConnection(conn, ps, rs);
}
catch (SQLException e) {
throw new SQLException("关闭数据库出错" + e.getMessage());
}
}
return cst;
}
增加一下两行
jdbc.drivers=oracle.jdbc.driver.OracleDriver
jdbc.datasources=jdbc/TestDb|jdbc:oracle:thin:@192.168.0.45:1521:ORA8
其中jdbc/TestDb是datasource的名字,竖线后边的是jdbc的rul 在ejb里边引用该数据库的方法是:
Context ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("jdbc/TestDb");
conn = ds.getConnection(dbUser,dbPasswd);