JAVA中修改SQL报错

来源:百度知道 编辑:UC知道 时间:2024/06/23 03:07:57
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Qukuan extends JFrame {
public Qukuan() {
super();
getContentPane().setLayout(null);
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final JLabel label = new JLabel();
label.setText("取款界面");
label.setBounds(10, 0, 65, 18);
getContentPane().add(label);

final JLabel label_1 = new JLabel();
label_1.setText("请输入您要提取的金额:(单次最高面额为5000元)");
label_1.setBounds(10, 51, 299, 18);
getContentPane().add(label_1);

final JButton button = new JButton();
button.addActionListener(new ActionListener() {

应该是先从数据库中查询出余额,然后根据余额判断操作是否正确(取款金额< 余额),符合的话再更新数据库。

第一次应该是select u_money from u_user where u_name='kobe'
第二次才是
update u_user set u_money=(u_money-100) where u_name='kobe'

第一次有ResultSet,第二次没有

哎!不知道你怎么改的。我又不知道你那两个类是干什么的,要知道我就帮你改了

try {
con = java.sql.DriverManager.getConnection(url, user, password);
stmt = con.createStatement();
rs = stmt.executeQuery("select u_money from u_user where u_name='kobe'");
if( rs.next() && rs.getDouble(1) > money) //money应该是输入的
{
stmt.executeUpdate("update u_user set u_money=(u_money-100) where u_name='kobe'");
Qukuan b=new Qukuan();
Qukuanwan a=new Qukuanwan();
b.setVisible(false);
a.setVisible(true);
}

第二个应该是executeUpdate

你的ResultSet定义为null了,然后并没有将执行结果复制给它。
应该是:
rs=stmt.executeQuery("update u_user set u_money=(u_money-100) where u_name='k