我在tomcat 5.5中配置好了连接池了
在jsp页面调用如下:
                  DataSource ds=null;
   List list=  new ArrayList();
InitialContext ctx=new InitialContext();    
    ds=(DataSource)ctx.lookup("java:comp/env/jdbc/test");
    Connection conn = ds.getConnection();
    PreparedStatement stm = conn.prepareStatement(sql);
    ResultSet rss = stm.executeQuery();
结果显示正常!我现在想把这jdni封装成javaBean的形式,试验过很多次....老是connection is closed!
现在可以取出数据出来,但是又出现新的问题,显示页面不能刷新,刷新就报java.lang.NullPointerException 
要不是ResetSet 关闭,要不就是PreparedStatement 对象关闭,反正不能刷新
该怎么封装好啊....大哥大姐教我个办法啊

解决方案 »

  1.   

    这是我封装后的代码:public class _DBConnection {
    private static DataSource ds = null;
    //获取数据资源连接
    public static Connection getConnection()throws SQLException{
    if(ds==null){
    try{
    InitialContext ctx=new InitialContext();    
    ds=(DataSource)ctx.lookup("java:comp/env/jdbc/test");
    return  ds.getConnection();
    }catch(NamingException e){
    throw new SQLException("cannot get Connection Pool!");
    }
    }
    return null;
    }

    public static void closeConnection(Connection conn)throws SQLException{
    if(conn!=null){
    try{
    conn.close();
    }catch(SQLException e){
    throw e;
    }
    }
    }

    public static void commit(Connection conn)throws SQLException{
    conn.commit();
    }
    public static void rollback(Connection conn)throws SQLException{
    conn.rollback();
    }

    }
      

  2.   

    你的类封装的有问题,你为什么要判断DataSource它呢?private Connection  conn= null; 
    //获取数据资源连接 
    public  Connection getConnection()throws SQLException{ 
    try{ 
    InitialContext ctx=new InitialContext();    
    DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/test"); 
    conn=ds.getConnection();
    return  conn;
    }catch(NamingException e){ 
    throw new SQLException("cannot get Connection Pool!"); 


    public  void closeConnection(Connection conn)throws SQLException{ 
    if(conn!=null){ 
    try{ 
    conn.close(); 
    }catch(SQLException e){ 
    throw e; 


    }  public  void commit(Connection conn)throws SQLException{ 
    conn.commit(); 

    public  void rollback(Connection conn)throws SQLException{ 
    conn.rollback(); 
    }  }