我是java语言的新手,但我正在尝试为mysql数据库创建搜索功能。 我设法让搜索功能使用定义的字符串,但我不知道自动生成的jtextfield是如何工作的,或者他们如何将它连接到自动生成的jbutton。
这是jtextfield和jbutton的代码:
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// jTextField1.addActionListener(this);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jTextField1.getText();
jComboBox1.getSelectedItem().toString();
try {
Connection con = DriverManager.getConnection("jdbc:ucanaccess://C:/Michel's Muziek Magazijn.accdb");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mmm WHERE "+jComboBox1+" = '"+jTextField1+"'");
while (rs.next()) {
System.out.println("\t" + rs.getString(2) + "\t" + rs.getString(3)+ "\t" + rs.getString(4));
}
rs.close();
} catch (SQLException e) {
System.out.println(e);
}
}
就像我说的那样,我不知道要在jtextfield中插入什么,或者如何将插入的数据导入jbutton。
如果有人能帮助我,我将非常感激,因为这个问题的答案也可以完全完成我的插入功能,以便添加到数据库中。
已经感谢阅读,
Molnaris
答案 0 :(得分:1)
您可以使用类似..
之类的内容将文本字段操作重定向到按钮private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt)
}
这意味着当用户按下 Enter 时,它也会触发搜索,这是一个不错的功能
您需要指定文本字段和组合框...
返回的值private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String text = jTextField1.getText();
String combo =jComboBox1.getSelectedItem().toString();
try {
Connection con = DriverManager.getConnection("jdbc:ucanaccess://C:/Michel's Muziek Magazijn.accdb");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mmm WHERE "+combo+" = '"+text+"'");
while (rs.next()) {
System.out.println("\t" + rs.getString(2) + "\t" + rs.getString(3)+ "\t" + rs.getString(4));
}
rs.close();
} catch (SQLException e) {
System.out.println(e);
}
}
话虽如此,我强烈建议您使用PreparedStatement
代替
PreparedStatement stmt = con.prepareStatement("SELECT * FROM mmm WHERE ? = ?");
stmt.setString(1, combo);
stmt.setString(2, text);
ResultSet rs = stmt.executeQuery();
有关详细信息,请参阅Using PreparedStatement
s
您也没有很好地管理资源,您应该确保在完成资源后关闭各种资源......
try (Connection con = DriverManager.getConnection("jdbc:ucanaccess://C:/Michel's Muziek Magazijn.accdb")) {
try (PreparedStatement stmt = con.prepareStatement("SELECT * FROM mmm WHERE ? = ?")) {
try (ResultSet rs = stmt.executeQuery()) {
//...
}
}
} catch (SQLException e) {
e.printStackTrace();
}