public List<Passenger> find(int pageno){
    List<Passenger> list = new ArrayList<Passenger>();

String sql="select * from passengerMessage limit"+ 3*(pageno-1)+",3";
ResultSet rs=null;
System.out.println("1");这一句执行了
 try {
   Statement st = conn.createStatement();
    System.out.println("2");
这句以及往下没执行且报出下面截图的错
       rs=st.executeQuery(sql);
        System.out.println("3");
         st.close();
   while(rs.next()){
    System.out.println("4");
        Passenger passenger=new Passenger(rs.getString(1),rs.getString(2),rs.getString(3));
        System.out.println("5");
        list.add(passenger);
            }
      } catch (Exception e) {
                 System.out.println(e.toString());                   
                 }finally{
                  try {                  conn.close();

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
                  
                 }      return list;
}
说是数据库连接已经断了,但是我没有close,我搜了一下说是连接池的问题,但是我写的bean+servlet没有用到连接池,我也不会用啊servletbeanjavalist

解决方案 »

  1.   

    你conn是connection对象吗?不是session吗?
      

  2.   

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    public class dbConnection {/*
    Class.forName( "com.mysql.jdbc.Driver").newInstance();
        url="jdbc:mysql://localhost:3306/flightTicket?user=root&password=flight&useUnicode=true&characterEncoding=UTF-8"
    conn=DriverManager.getConnection(url);
     
      */
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        PreparedStatement pstmt = null;
      public dbConnection(){//加载数据库驱动
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn = getConnection();
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }     public Connection getConnection(){//获得数据库连接
         System.out.println("getConnection()被调用"); 
            String url = "jdbc:mysql://localhost:3306/flightTicket";
            String user = "root";
            String password = "flight";
            try {
                conn = DriverManager.getConnection(url, user, password);
            } catch (SQLException e) {
               
                e.printStackTrace();
            }
            return conn;
        }     public void close(){//关闭数据库连接,释放资源
         System.out.println("close被调用了关闭数据库连接,释放资源"); 
            try {
                if(rs!=null)rs.close();
                if(pstmt!=null)pstmt.close();
                if(conn!=null)conn.close();         } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            }
       
    }
      

  3.   

    你把st.close();
      这个去掉 试试
      

  4.   

    Statement st = conn.createStatement();
    楼主代码中的conn是什么,拿出来看看。