|
Java学習者论坛
我在一个项目zhong使用了Tomcat自己的shu據库連接池,
写了一個数據库封装类,进行shu据库操作,
遇到一个奇怪的问题,虽然最后解決了,但是不知道原因。
情况是这样的
DbWrapper.java
public class DbWrapper{
// 定义连接池对象为靜態变量,将yi直存在,直到工作目录关闭。
private static DataSource ds = null;
public static Connection openConnection() throws Exception {
// 只需要初始化1次
if ( ds == null ){
Context initCtx=new InitialContext();
DataSource ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/onlinepay");
}
return ds.getConnection();
}
这样寫以后,一直返回Null,无法进行數据库操作,后来改成了
public class DbWrapper{
// 定義连接池对象为静tai变量,将一直存在,直到工作目录关闭。
private static DataSource ds = null;
public static Connection openConnection() throws Exception {
// 只需要初始化1次
try{
// Obtain our environment naming context
Context initCtx = new InitialContext();
//注意看這里!!!
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Look up our data source
ds = (DataSource)envCtx.lookup("jdbc/onlinepay");
return ds.getConnection();
}catch(Exception ex){
ex.printStackTrace(System.err);
return null;
}
}
程序就正常了。
用第一种fang法,我直接在JSP页面里,直接diao用连接池,是成功的,但是在類里就bu行。
改了yi后,就可以。
两种方法you什么不同吗?请大侠指教。谢谢了。
欢迎来到Java学习者论坛,转载请注明地址:http://www.javaxxz.com. |
|