比如我现在要传过一条SQL语句去查询,一般情况下得到rs了,直接while(rs.next()){
ttt t = new ttt();//对象
t.setID() = rs.getInt(1);
t.setName = rs.getString(2);
...
all.add(t);
}
然后在循环这list all就行了,可现在这个ttt对象定不了,不知道查那个表呢,要定义一个动态的对象,怎么定义?

解决方案 »

  1.   

    用数组好了:while(rs.next()){
    List t = new ArrayList();//对象
    t.add(rs.getInt(1));
    t.add(rs.getString(2));
    ...
    all.add(t);
    } 不过说实话,不知道你想搞什么
      

  2.   

    是不是不同的表要生成不同的对象?如果是,如果表少(一个两个的)那就直接switch case写吧!如果多,那你可以提取其公共的特性,做些辅助类,采用构造模式(简单工厂、工厂方法、抽象工厂)来实现吧
      

  3.   

    动态对象  一般是用反射实现的 class.forName("包名"+类名).newInstance();  一般是抽象工厂
      

  4.   

    明白了
    用数组实现
    while(rs.next()){
    List t = new ArrayList();
    t.add(rs.getInt(1));
    t.add(rs.getString(2));
    ...
    all.add(t);

      

  5.   

    =下啊,还有个问题while(rs.next()){
    List t = new ArrayList();
    t.add(rs.getInt(1));
    t.add(rs.getString(2));
    ...
    all.add(t);
    } 这里面的t.add(rs.getInt(1));
    t.add(rs.getString(2));
    ...这些我不知道是几个,没准是几个呢,要看你传过来的sql语句要查几个字段呢,怎么写?
      

  6.   

    我说一下我的理解,你是想定义一个ttt对象,然后将从数据库中查出来的对象的属性值分别附值,将ttt添加到list集合中,在遍历list是把,如果是这样的话 你可以定义一个java Bean对象,Ttt.java类,将数据库表的字段值作为这个类的属性值,添加getter和setter方法 就可以实现了
      

  7.   

    发表于:2009-04-02 12:22:177楼 得分:0 
    我说一下我的理解,你是想定义一个ttt对象,然后将从数据库中查出来的对象的属性值分别附值,将ttt添加到list集合中,在遍历list是把, 如果是这样的话 你可以定义一个java Bean对象,Ttt.java类,将数据库表的字段值作为这个类的属性值,添加getter和setter方法 就可以实现了 
    我就是想做一个ttt.java类,现在问题就是你还不知道从数据库查处的是什么字段名呢,所以你这个类的属性值页定不了,就更别提get set方法了
      

  8.   


    while(rs.next()){
      List t = new ArrayList();
      int count = rs.getFetchSize();
      for(int i=1;i>=count;i++) 
        //因为你什么都不确定,你不能使用getInt,因为可能根本就不是int
        t.add(rs.getString(i));
      all.add(t);

      

  9.   


    如果你定义的DTO名跟物理表名有一定的关系,那就可以通过你检索的SQL语句中找出你要检索的表名,利用反射,可以生成这个表所对应的DTO实例,进行set。
      

  10.   

        说一下我的理解,楼主应该是想将rs这个ResultSet结果集中的元组存储起来吧,因为要查询的sql语句可能要查找多个属性值,所以要定义一个类并且因为有可能返回多个元组,所以得建立这个类的对象数组。但不是建立容器ArrayList。
        你定义的ttt.java完全可以包含该对象或者说你的数据表中的所有属性及相应的方法,因为一般SQL语句在jsp中是固定的,即使要动态输入,也应该能提取它的属性名。
    这是我的理解,希望大家指正
      

  11.   

    楼主就爱画蛇添足,明明ResultSet 是一个很好用的集合,你非要转成list, ResultSet  不能直接用吗?
    你实在要把关系型数据转换成对象型数据,而且是通用的话,自己实现没有那么简单,不过你可以采用现成的解决方案,
    ibatis 或hibernate 。