数据表A1:
b1       b2        b3
123(int),abc(char),100.08(dec)
124(int),abc(char),120.07(dec)
125(int),bcd(char),100.07(dec)
126(int),abc(char),999.99(dec)
......
在第一个类中查询select * from A1 where b2 = "abc"
然后比如结果就是123,124,126这3条记录
现在请问如何将结果传到另一个类?或者是说在另一个类使用这个结果?

解决方案 »

  1.   

    public class DBCon {
    private Connection con;
    private Statement sta;
    private ResultSet rs;
    private String driver ="oracle.jdbc.driver.OracleDriver";
    private String url = "jdbc:oracle:thin:@localhost:1521:HEKIN";
    private static DBCon db;
    public DBCon() throws Exception{
    Class.forName(driver);
    con = DriverManager.getConnection(url,"scott","tiger");
    }
    public static synchronized DBCon getdb(){
    if(db == null){
    try {
    db = new DBCon();
    } catch (Exception e) {
    e.printStackTrace();
    }
    return db;
    }
    return db;
    }
    public ResultSet query(String sql) throws Exception{
    sta = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);;
    rs = sta.executeQuery(sql);
    return rs;
     
    };}
    在另一个类里面
    DBCon db = DBCon.getdb;
    ResultSet rs = db.query(sql语句);
    rs就是得到的记录集 
    楼主试试看吧,我也是初学者
      

  2.   

    把rs结果传过去就可以了,或者用static ,另一个类里直接可使用
      

  3.   

    将你查出的每行记录放在一个实体中,
    在把这些实体,如果多的话放在一个数据结构中,如ArrayList,固定的话,直接当参数传,调用另外类中的方法。
    将结果搞到另外一个类中不是很妥吧:)
      

  4.   

    谢谢以上几位
    引用175cm(hanhui)的话将你查出的每行记录放在一个实体中,
    在把这些实体,如果多的话放在一个数据结构中,如ArrayList,固定的话,直接当参数传,调用另外类中的方法。
    将结果搞到另外一个类中不是很妥吧:)也就是说那个类用结果就在哪个类查数据库比较好?
      

  5.   

    问题已解决
    每一行数据装入实体类
    实体类装入ArrayList
    传递这个ArrayList
    楼下的兄弟说说这么做有什么不妥之处么?
      

  6.   

    ArrayList可以放这个表的ORM对象更好。
      

  7.   


    放在collection类里面传过去就好了不要直接传rs
    这样容易忘记释放连接
    也不符合DAO的规则
    后果....
      

  8.   

    将数据持久化,这是通常的做法,而不是传递ResultSet...