list数组的值取出问题
//查询数据部分代码:
public ArrayList SelectDb(String sql) {
String value = null;
ArrayList list = new ArrayList();
Map map;
try{
rs=stmt.executeQuery(sql);
ResultSetMetaData mt = rs.getMetaData();
int columnCount = mt.getColumnCount(); while (rs.next())
{
map = new HashMap(columnCount);
for (int i = 1; i <= columnCount; i++)
{
value = (String)rs.getString(i);
if (value == null) value = "";
map.put(mt.getColumnName(i).toLowerCase(),value);
}//for
list.add(map);
}//while
} catch(SQLException ex){
System.out.println("Cann't convert!");
}//try
return list;
}//sleectDb
//JSP显示部分代码
<%
Conn c=new Conn();
sql=“select emp_code, real_name from t_employee where organ_id=?”;
List ls=c.SelectDb(sql);
for (int i=0; i<ls.size(); i++){
colMap = (Map)ls.get(i);
}
这时候程序运行很正常....
我为了提高程序可读性,重用性,我添加了一个dataManger类,
类中封装进了全部数据操作,返回list数组.如下:
public class dataManger{
public String RegisterId,Pwd;
private ResultSet rs=null;
private Conn c=null;
......
public dataShow()
{
Conn c=new Conn();
sql=“select emp_code, real_name from t_employee where organ_id=?”;
List ls=c.SelectDb(sql);
return list;
}
此时的jsp页面为:
....
dataManger dm=new dataManger()
List ls=dm.showData();
for (int i=0; i<ls.size(); i++){
colMap = (Map)ls.get(i);
.....
显示处错,,,调试后发现,这样添加一个类后,ls.size的值为0,是查询没有执行?还是list值没有传出来?
实在不知道怎么回事....请指教.
问题点数:20、回复次数:3Top
1 楼chenxiaoqiang(城墙)回复于 2005-06-04 09:42:20 得分 0
一个晚上了,,,,没有人回复.....Top
2 楼jfy3d(剑事 http://www.migti.com)回复于 2005-06-04 10:20:28 得分 20
http://www.blogjava.net/jfy3d
参看 《封装数据结果集》
保证解决Top
3 楼chenxiaoqiang(城墙)回复于 2005-06-04 10:51:02 得分 0
唉.....
折腾了一晚上,原来错误就是因为一个new关键字,,,汗啊!!Top




