读书人

Hashtable 的声明位置没搞懂,该怎么处

发布时间: 2012-02-17 17:50:41 作者: rapoo

Hashtable 的声明位置没搞懂
1>
Connection conn=getConnection();
Vector list=new Vector();
Hashtable ht=new Hashtable();
try
{
stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery( "select sortID,sortName ");
while(rs.next() )
{
int field =rs.getInt(1);
String value=rs.getString(2);
ht.put(field,value);
list.add(ht);
}

}catch(SQLException e)
{}

2>

Connection conn=getConnection();
Vector list=new Vector();
try
{
stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery( "select sortID,sortName ");
while(rs.next() )
{
Hashtable ht=new Hashtable();
int field =rs.getInt(1);
String value=rs.getString(2);
ht.put(field,value);
list.add(ht);
}

}catch(SQLException e)
{}


数据表:
sortID sortName
1 计算机
2 园林设计


第一段代码的结果为:
2 园林设计
1 计算机
2 园林设计


1 计算机

第一段代码的结果为:
1 计算机
2 园林设计

第二段的才正确,只是Hashtable 声明的位置在循环之前怎么回得第一段的结果嘞?????

[解决办法]
第一段你是把HashTable对象定义放在循环外面了所以把所有字段都放到一个HashTable里
第二段你是把HashTable对象定义放在循环里面了所以把每一个字段放到不同的HashTable里
这要是你还不明白的话你就多看看JAVA基础的局部变量和全局变量部分

读书人网 >Java Web开发

热点推荐