gpt4 book ai didi

java - 没有反射(reflect)对数据库的更改,代码有什么问题吗?

转载 作者:行者123 更新时间:2023-11-29 09:46:50 25 4
gpt4 key购买 nike

我制作了一个图形用户界面,通过单击按钮将数据输入到我的数据库中,但它没有反射(reflect)数据库中的更改。有人能解决这个问题吗?

public class ExpenseManager implements ActionListener {
JFrame frame ;
JTextField t1 = new JTextField("");
JTextField t2 = new JTextField("");
void go(){
frame = new JFrame("Daily Expenses");
JButton b = new JButton("SUBMIT");
frame.add(t1);
t1.setBounds(50,50,200,30);
frame.add(t2);
t2.setBounds(50,100,200,30);
frame.add(b);
b.setBounds(50,150,200,30);
b.addActionListener(this);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.getContentPane().setBackground(Color.darkGray);
frame.setSize(300,300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con= DriverManager.getConnection(
"jdbc:mysql://localhost:3306/try","root","root");
Statement stmt=con.createStatement();
String x = t1.getText();
int x1 = Integer.parseInt(x);
String y = t2.getText();
ResultSet rs=stmt.executeQuery("INSERT INTO data (amt, dis) VALUES (x1,y); ");
con.close();
}catch(Exception eX){ System.out.println(e);}
}
}```

最佳答案

INSERT 不是java中的查询,而是更新。因此,将 stmt.executeQuery 更改为 stmt.executeUpdate 应该可以解决问题。这也不会创建 ResultSet,在本例中您不需要它。

另外,请注意,如果您编写任何这样的查询,则可能会遇到内存泄漏的情况,请尝试使用 try-catch-finally 语句进行数据库查询,并确保始终关闭连接、结果集和声明。您也只需在程序开始时调用一次 `Class.forName("com.mysql.jdbc.Driver") 即可。

关于java - 没有反射(reflect)对数据库的更改,代码有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55513114/

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