请教一个jdbc的问题
while(rs.next()){
TmColor color=new TmColor();
color.setColorCode(rs.getString("COLOR_CODE"));
color.setColorName(rs.getString("COLOR_NAME"));
color.setCreateBy(rs.getLong("UPDATE_BY"));
color.setCreateDate(rs.getTimestamp("CREATE_DATE"));
color.setEntityCode(rs.getString("ENTITY_CODE"));
color.setOemTag(rs.getInt("OEM_TAG"));
color.setUpdateBy(rs.getLong("UPDATE_BY"));
color.setUpdateDate(rs.getTimestamp("UPDATE_DATE"));
color.setVer(rs.getInt("VER"));
colorList.add(color);
}
为什么color对象只有在while里面创建,colorList才可以得到数据集的全部记录?
而在while外面的时候,colorList里面全都是重复的rs的最后一条记录?多谢
------解决方案--------------------当然的了,在while外面new,就创建一个实例,在见过循环的时候,每次循环都是后面的覆盖前面的,就这样之前覆盖下来就剩下最后一条记录了
在在while里面new,每次都是一个新的实例不存在覆盖的情况,这样add到list都是不同的了
在慢慢消化一下!!!
------解决方案--------------------这里就是实例化的问题,实例化必须在while里面实例化,你只可以在外面声明对象!如果你在外面就实例化的话它就只可以ADD一个COLOR对象!因为地址都是一样的!
------解决方案--------------------同一个对象引起的
------解决方案--------------------
+1
------解决方案--------------------同一个对象,同一个引用,循环值更新,从始终唯一。。。。。
你可以把COLOR类声明放在外面,然后根据COLOR类循环创建COLOR对象,并加入List中
TmColor color = null;
while(rs.next()){
color=new TmColor();
color.setColorCode(rs.getString("COLOR_CODE"));
color.setColorName(rs.getString("COLOR_NAME"));
color.setCreateBy(rs.getLong("UPDATE_BY"));
color.setCreateDate(rs.getTimestamp("CREATE_DATE"));
color.setEntityCode(rs.getString("ENTITY_CODE"));
color.setOemTag(rs.getInt("OEM_TAG"));
color.setUpdateBy(rs.getLong("UPDATE_BY"));