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基础的局部变量和全局变量部分