获取指定list里面的值

时间:2022-12-09 12:17:20
 public List getObjects(){
     List v=new ArrayList();
Statement stmt = null;
ResultSet rs = null;
        String sql = "select * from VIEW_RPT_CORP_D 
                  DataConn conn = new DataConn();
try {
stmt = conn.getConn().createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
    v.add(rs.getString("本期数"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return v;
}
这是代码,现在只是获取一个字段“本期数”,然后添加到list中在在页面中
通过v.get();来获取,该字段,即该列中的指定行的内容。
但是如果在加个字段如"上月数"那么我在我也可以通过  v.add(rs.getString("上月数"));来添加。但是这个就不能用v.get()来获取了,我现在用的方法是又建个跟上面一样的,list变量v1,前台也就用v1.get()来获取。可一旦字段增多那就太麻烦了。所以请高手指教下。

14 个解决方案

#1


用两个list,一个list是保存一行里面的字段,另外一个list保存记录数.
List column= new ArrayList();
List record= new ArrayList();
column.add(rs.getString("本期数")); 
column.add(rs.getString("上月数"));
record.add(column);
然后就可以按顺序取了

#2


你可以写个javabean,包含“本期数”、“上月数”等属性
while (rs.next()) { 
    String a = rs.getString("本期数"); 
    String b = rs.getString("上月数");  
    Javabean javabean = new Javabean();
    javabean.setA(a);javabean.setB(b);
    v.add(javabean); 


jsp页面遍历得到你想要的javabean,然后提取“本期数”、“上月数”等属性

#3


你这样做本身就不太好,想这样的一般都是使用Object[]对象数组,或则是Map来封装。



看了一下你的代码,有个折中的方法:


//你的字段很多。。。
  Map<String,List> map = new HashMap<String,List>();
  map.put("本期数",new ArrayList());
  map.put("上期数",new ArrayList());
//。。。。。

while (rs.next()) { 
    map.get("本期数").add(rs.getString("本期数")); 
//。。。。。


#4


你可以将你要获取的字段建立一个javabean,然后把字段都放在里面,到view层直接对这个javabean操作
例如:
while(rs.next()){
  Object bean=new Object();
  bean里面的set方法,保存要查询的字段
  list.add(bean);
}
request.getAtrribute("beanList",list);

到视图层你直接取出beanList然后将其遍历,转换成bean对象,就可以操作了

#5


引用 2 楼 defonds 的回复:
你可以写个javabean,包含“本期数”、“上月数”等属性 

Java codewhile (rs.next()) { 
    String a = rs.getString("本期数"); 
    String b = rs.getString("上月数");  
    Javabean javabean = new Javabean();
    javabean.setA(a);javabean.setB(b);
    v.add(javabean); 




jsp页面遍历得到你想要的javabean,然后提取“本期数”、“上月数”等属性 


同意

#6


既然你是通过一张表查询出来的,你为什么不把查询的结果封装到一个对象里面 然后再将这个对象放到list里面呢





while (rs.next()) { 
    Bean bean = new Bean();
    bean.setCount(rs.getString("本期数"));
    bean.setRCount("上月数");

    v.add(bean); 



#7


JAVABEAN……

#8


开发中一般一张表对应一个javaBean
设置一个VO  
public class cardVO{
//字段对应属性
private string qishu;
//其他
private String other;
//List
private String pulbicList;
//扩展
private Object Object;
}

list.add(Object)

//循环
JDK1.5以上
for(Object object:list){
object.get();
}

Object o = (Object)List.get(i)

#9


如果要是这个list在页面上用可以2楼的办法解决。
如果这个list不是在页面上用,可以用泛型解决。

#10


可我该 怎么获取呢是在jsp页面获取

#11


综合2楼和4楼的写法,在页面上用遍历输出这个list就行了

#12


进来学习学习!

#13


学习一下!用简单的比较好的算法做还是很好的啊!

#14


2楼说的很对,你定义一个javaBean,里边定义两个字段代表你的本期数,上月数.查询出一条值后,将这两列对应的值放入一个javaBean对象里,然后再将此javaBean放如list里.取出时,先取得对象,然后用get方法,得到里边的值就可以了.

#1


用两个list,一个list是保存一行里面的字段,另外一个list保存记录数.
List column= new ArrayList();
List record= new ArrayList();
column.add(rs.getString("本期数")); 
column.add(rs.getString("上月数"));
record.add(column);
然后就可以按顺序取了

#2


你可以写个javabean,包含“本期数”、“上月数”等属性
while (rs.next()) { 
    String a = rs.getString("本期数"); 
    String b = rs.getString("上月数");  
    Javabean javabean = new Javabean();
    javabean.setA(a);javabean.setB(b);
    v.add(javabean); 


jsp页面遍历得到你想要的javabean,然后提取“本期数”、“上月数”等属性

#3


你这样做本身就不太好,想这样的一般都是使用Object[]对象数组,或则是Map来封装。



看了一下你的代码,有个折中的方法:


//你的字段很多。。。
  Map<String,List> map = new HashMap<String,List>();
  map.put("本期数",new ArrayList());
  map.put("上期数",new ArrayList());
//。。。。。

while (rs.next()) { 
    map.get("本期数").add(rs.getString("本期数")); 
//。。。。。


#4


你可以将你要获取的字段建立一个javabean,然后把字段都放在里面,到view层直接对这个javabean操作
例如:
while(rs.next()){
  Object bean=new Object();
  bean里面的set方法,保存要查询的字段
  list.add(bean);
}
request.getAtrribute("beanList",list);

到视图层你直接取出beanList然后将其遍历,转换成bean对象,就可以操作了

#5


引用 2 楼 defonds 的回复:
你可以写个javabean,包含“本期数”、“上月数”等属性 

Java codewhile (rs.next()) { 
    String a = rs.getString("本期数"); 
    String b = rs.getString("上月数");  
    Javabean javabean = new Javabean();
    javabean.setA(a);javabean.setB(b);
    v.add(javabean); 




jsp页面遍历得到你想要的javabean,然后提取“本期数”、“上月数”等属性 


同意

#6


既然你是通过一张表查询出来的,你为什么不把查询的结果封装到一个对象里面 然后再将这个对象放到list里面呢





while (rs.next()) { 
    Bean bean = new Bean();
    bean.setCount(rs.getString("本期数"));
    bean.setRCount("上月数");

    v.add(bean); 



#7


JAVABEAN……

#8


开发中一般一张表对应一个javaBean
设置一个VO  
public class cardVO{
//字段对应属性
private string qishu;
//其他
private String other;
//List
private String pulbicList;
//扩展
private Object Object;
}

list.add(Object)

//循环
JDK1.5以上
for(Object object:list){
object.get();
}

Object o = (Object)List.get(i)

#9


如果要是这个list在页面上用可以2楼的办法解决。
如果这个list不是在页面上用,可以用泛型解决。

#10


可我该 怎么获取呢是在jsp页面获取

#11


综合2楼和4楼的写法,在页面上用遍历输出这个list就行了

#12


进来学习学习!

#13


学习一下!用简单的比较好的算法做还是很好的啊!

#14


2楼说的很对,你定义一个javaBean,里边定义两个字段代表你的本期数,上月数.查询出一条值后,将这两列对应的值放入一个javaBean对象里,然后再将此javaBean放如list里.取出时,先取得对象,然后用get方法,得到里边的值就可以了.