我是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。
如果有人能帮助我,我将非常感激,因为这个问题的答案也可以完全完成我添加到数据库的插入功能。
非常感谢您的阅读,
莫纳里斯
最佳答案
您可以使用类似的方法将文本字段操作重定向到按钮。
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();
}
看看The try-with-resources Statement了解更多详情
关于java - 在 jbutton 中使用 netbeans 自动生成的 jtextfield 进行 mysql 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27726767/