我必须打开一个窗口,其中包含将从数据库中获取的关键字信息。如果我在textarea中输入关键字,它只会打开一个窗口。我无法打开下一个关键字的窗口。
这是我的编码。
String str = textArea.getText();
//Connection con = new DBConnection().connect();
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);
String stm="select url from pingatabl where functn=?";
PreparedStatement st = conn.prepareStatement(stm);
st.setString(1, str);
ResultSet rs = st.executeQuery();
if (rs.next()) {
String s = rs.getString(1);
JFrame f=new JFrame();
f.setVisible(true);
f.setSize(500,750);
JEditorPane jm=new JEditorPane();
f.add(jm);
jm.setPage(ClassLoader.getSystemResource(s));
} else {
JOptionPane.showMessageDialog(null, "function name not Found");
}
}
catch (Exception ex) {
System.out.println(ex);
}
答案 0 :(得分:0)
如果我在textarea中输入关键字,它只会打开一个窗口。我无法打开下一个关键字的窗口。
String str = textArea.getText();
它只打开一个窗口,因为你只有一个字符串。如果您希望字符串中有多个关键字,那么您需要解析每个关键字并分别对每个关键字进行数据库查询。
所以代码可能是这样的:
Connection con = new DBConnection().connect();
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);
String[] keywords = textArea.getText().split();
for (String keyword: keywords)
{
createFrame(conn, keyword);
}
然后,方法createFrame(...)
将创建PreparedStatement,执行查询并构建框架以显示从数据库返回的数据。