上海卫生人才招聘会:关于向量的存取错误,思路我在代码里写清楚了,请各位帮忙指点

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 05:53:29
我用GUI做的,下面是ActionListener里面的一个按钮事件:
allselectB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e1)
{
VectorVO Vect=new VectorVO();//new一个向量的值对象
alltext.setText("id | 姓名 | 年龄 | 角色 \n");
DBUtil db = new DBUtil();//new一个select语句的验证模块db
Vector v = Vect.getAllRet();//值对象里面的get方法赋值向量v
UserVO a = new UserVO();//new一个用户值对象

try
{
java.sql.ResultSet rs = db.executeSQL("select * from users");//把selcet语句传给db里面的方法验证,返回结果集rs
while(rs.next())
{
String rsid = rs.getString("id");//取出id
String rsname = rs.getString("name");
String rspasswd = rs.getString("passwd");
String rsrole = rs.getString("role");
a.setId(rsid);//set给用户值对象
a.setName(rsname);
a.setPasswd(rspasswd);
a.setRole(rsrole);
v.add(a);//把用户值对象加进向量对象里面
}
for(int i = 0; i < v.size(); i ++ ) //以向量长度循环
{
UserVO b = (UserVO)v.get(i);//取向量第i组
alltext.append(b.getId() + " | " + b.getName() + " | " + b.getPasswd() + " | " + b.getRole());//把值传给JTextArea类型的文字域alltext.
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
db.closeDatabase();//close相关链接
}
}
});

大概的思路是这样的,其实不用向量也可以实现这项操作,不过听我们那的培训老师说这样做可以减少对数据库的连接调用次数,所以要这么做的.
但是这么做时运行出现了报错,弄不清楚哪里出错了,请明白的朋友帮忙指点,谢谢!!
java.lang.NullPointerException
at com.MainFrame$6.actionPerformed(MainFrame.java:351)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
86)........................
下面都是些其他相关的类,可以不看的!
______________________________________________
import java.util.Vector;
public class VectorVO {
private Vector allRet;

public void setAllRet(Vector allRet) {
this.allRet = allRet;
}
public Vector getAllRet() {
return (this.allRet);
}
________________________________________
package com;
import java.util.Vector;

public class UserVO {
String id;
String name;
String passwd;
String role;
public void setId(String id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
//.....略了,不然写不下了
}
____________________
db里面的executeSQL方法
if("s".equalsIgnoreCase(sqlString.substring(0, 1)))
{
rs = stat.executeQuery(sqlString);
return rs;
}
else
{
stat.executeUpdate(sqlString);
}