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;
}
} 展开
主要代码如下
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;
}
} 展开
3个回答
展开全部
问题比较明显,就是Vector是空的。
按照你的想法,其实应该是把查询到的数据放在一个Vector里面,然后让JTable显示,想法没有错,但是做法错了。
Vector dataVector = null;
table = new JTable(dataVector, getAgencyColumnVector());
这两句说明刚定义一个Vector,赋值为空,就把它放入了JTable中。
你点击按钮是会进入到你写的getSearchVector方法中的,但是这个方法执行完后,返回了一个Vector,而且这个里面包括数据库中的数据,但是你没有使用这个返回值,导致白做了一遍数据库查询。
建议你在类中建立一个Vector属性,然后在getSearchVector方法内部使用这个Vector,然后JTable中也使用这个Vector,就OK啦!
按照你的想法,其实应该是把查询到的数据放在一个Vector里面,然后让JTable显示,想法没有错,但是做法错了。
Vector dataVector = null;
table = new JTable(dataVector, getAgencyColumnVector());
这两句说明刚定义一个Vector,赋值为空,就把它放入了JTable中。
你点击按钮是会进入到你写的getSearchVector方法中的,但是这个方法执行完后,返回了一个Vector,而且这个里面包括数据库中的数据,但是你没有使用这个返回值,导致白做了一遍数据库查询。
建议你在类中建立一个Vector属性,然后在getSearchVector方法内部使用这个Vector,然后JTable中也使用这个Vector,就OK啦!
追问
这个要怎么写?新手有点乱了。
展开全部
dataVector应该定义为类字段,在匿名内部类的try块中这样写:
try
{
dataVector=getSearchVector();
}
这样数据就显示到表中了。
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的问题,不知道怎么解决
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询