gpt4 book ai didi

java - 在 jbutton 中使用 netbeans 自动生成的 jtextfield 进行 mysql 搜索

转载 作者:行者123 更新时间:2023-12-01 12:04:28 25 4
gpt4 key购买 nike

我是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 PreparedStatements了解更多详情

您也没有很好地管理您的资源,您应该确保在使用完各种资源后关闭它们...

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com