java查询数据库 的问题

点击按钮无反映主要代码如下JButtonbutton=newJButton("\u786E\u5B9A");button.addActionListener(newAct... 点击按钮无反映
主要代码如下

JButton button = new JButton("\u786E\u5B9A");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
getSearchVector();
} catch (SQLException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}

}
});
panel.add(button);

final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane, BorderLayout.CENTER);

Vector dataVector = null;
table = new JTable(dataVector, getAgencyColumnVector());
scrollPane.setViewportView(table);

}

public Vector getSearchVector() throws SQLException {
Connection conn = null;
java.sql.Statement stmt = null;
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_medicine ", "sa", "5512834panni");
stmt = conn.createStatement();
String name = textField.getText();
String sql = null;
sql = "select * from agency where ano = '" + name + "'";// 定义SQL语句
ResultSet rs = stmt.executeQuery(sql);
System.out.print(sql);
Vector searchVector = new Vector();
Vector dataVector = new Vector();
while (rs.next()) {
Vector rowVector = new Vector();
for (int i = 1; i <= 5; i++) {
if (i == 2 || i == 4) {
rowVector.add(String.valueOf(rs.getString(i)));
} else {
rowVector.add(rs.getString(i));
}
}
dataVector.add(rowVector);

}
return dataVector;
}

Vector getAgencyColumnVector() {
Vector columnVector = new Vector();
columnVector.add("编号");
columnVector.add("姓名");
columnVector.add("性别");
columnVector.add("电话");
columnVector.add("备注");

return columnVector;
}

}
展开
 我来答
mzocean
2014-12-15 · TA获得超过1083个赞
知道小有建树答主
回答量:492
采纳率:33%
帮助的人:468万
展开全部
问题比较明显,就是Vector是空的。
按照你的想法,其实应该是把查询到的数据放在一个Vector里面,然后让JTable显示,想法没有错,但是做法错了。
Vector dataVector = null;
table = new JTable(dataVector, getAgencyColumnVector());
这两句说明刚定义一个Vector,赋值为空,就把它放入了JTable中。
你点击按钮是会进入到你写的getSearchVector方法中的,但是这个方法执行完后,返回了一个Vector,而且这个里面包括数据库中的数据,但是你没有使用这个返回值,导致白做了一遍数据库查询。

建议你在类中建立一个Vector属性,然后在getSearchVector方法内部使用这个Vector,然后JTable中也使用这个Vector,就OK啦!
追问
这个要怎么写?新手有点乱了。
xjf5562
2014-12-15 · TA获得超过1190个赞
知道小有建树答主
回答量:896
采纳率:75%
帮助的人:737万
展开全部
dataVector应该定义为类字段,在匿名内部类的try块中这样写:
try
{
dataVector=getSearchVector();

}
这样数据就显示到表中了。
更多追问追答
追问
不太理解,刚学java没多久
能帮忙写好这段代码吗?
谢谢
追答
在:JButton button = new JButton("\u786E\u5B9A"); 的下一行增加:

Vector dataVector=null;
在方法:getSearchVector() 中把:Vector dataVector=new Vector(); 更改为:
dataVector=new Vector();
再在匿名内部类中照我上面说的那样改一下。

你先这样试一下,如果不行,再问我。因为没有相应的数据库,我不能帮你试效果,你自己试试看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-12-15
展开全部
问题不说明下?
追问
就是要做查询数据库操作,查询代码也写好了,就是点击按钮后没有任何反映
应该是table = new JTable(dataVector, getAgencyColumnVector());
中的dataVector的问题,不知道怎么解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式