来自Java的值不正确,将其插入mysql

时间:2019-04-28 22:51:16

标签: java mysql sql jdbc

我有一个简单的程序,可以接收汽车销售信息,并将其输入到MySQL DB中,除佣金整数外,所有内容均正确插入100%。它不断地插入一个常数,而不是我设置为输入的“ comm”值。我的打印语句显示了正确的值,但是当我检查数据库时,它不是正确的值。我不确定我是否有错误或JDBC问题?

我输入了一个简单的值1,打印语句读取了一个值,但db将始终显示类似1400的值。

图片链接:https://imgur.com/apuKB0C https://imgur.com/Kijl9yL

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.util.Random;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.awt.event.ActionEvent;

public class Sale {
Connection con;
Statement st;
int rs;
ResultSet rs1;
ResultSet rs2;
boolean rs3;

JFrame frame5;
private JTextField textField;
private JTextField textField_1;
private JTextField textField_3;
private JTextField textField_4;
private JTextField textField_5;
private JTextField textField_6;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Sale window = new Sale();
                window.frame5.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public void connect() {
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/project", "root", "Alesana14");
        st = con.createStatement();
    } catch (Exception ex) {

    }
}

/**
 * Create the application.
 */
public Sale() {
    initialize();
}

/**
 * Initialize the contents of the frame.
 */
private void initialize() {
    frame5 = new JFrame();
    frame5.setBounds(100, 100, 834, 543);
    frame5.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame5.getContentPane().setLayout(null);

    JLabel lblCreateSale = new JLabel("Create Sale");
    lblCreateSale.setFont(new Font("Lucida Grande", Font.PLAIN, 20));
    lblCreateSale.setBounds(385, 113, 110, 44);
    frame5.getContentPane().add(lblCreateSale);

    JLabel label_1 = new JLabel("Model:");
    label_1.setFont(new Font("Lucida Grande", Font.PLAIN, 16));
    label_1.setBounds(264, 252, 77, 16);
    frame5.getContentPane().add(label_1);

    JLabel label_2 = new JLabel("Make:");
    label_2.setFont(new Font("Lucida Grande", Font.PLAIN, 16));
    label_2.setBounds(264, 214, 77, 16);
    frame5.getContentPane().add(label_2);

    JLabel label_4 = new JLabel("Price:");
    label_4.setFont(new Font("Lucida Grande", Font.PLAIN, 16));
    label_4.setBounds(264, 294, 77, 16);
    frame5.getContentPane().add(label_4);

    JLabel label_5 = new JLabel("Color:");
    label_5.setFont(new Font("Lucida Grande", Font.PLAIN, 16));
    label_5.setBounds(264, 336, 77, 16);
    frame5.getContentPane().add(label_5);

    textField = new JTextField();
    textField.setColumns(10);
    textField.setBounds(353, 210, 185, 26);
    frame5.getContentPane().add(textField);

    textField_1 = new JTextField();
    textField_1.setColumns(10);
    textField_1.setBounds(353, 248, 185, 26);
    frame5.getContentPane().add(textField_1);

    textField_3 = new JTextField();
    textField_3.setColumns(10);
    textField_3.setBounds(353, 284, 185, 26);
    frame5.getContentPane().add(textField_3);

    JButton btnEnter = new JButton("Enter");
    btnEnter.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            try {
                String id = textField_6.getText().trim();
                String make = textField.getText().trim();
                String model = textField_1.getText().trim();
                String price = textField_3.getText().trim();
                String color = textField_4.getText().trim();
                String year = textField_5.getText().trim();

                String sql = "UPDATE product SET inventory = inventory-1 WHERE make='" + make + "' and model = '"
                        + model + "' and color ='" + color + "' and yearMade=" + year + "";

                // executeUpdate for insert,delete, and update
                PreparedStatement ps;
                ps = Connectivity.getConnection().prepareStatement(sql);
                rs = ps.executeUpdate();

                String sql1 = "UPDATE employee SET commission = commission + (commissionRate*"+price+") WHERE id = "+id+"";
                ps = Connectivity.getConnection().prepareStatement(sql1);
                rs = ps.executeUpdate();

                //inserts into sales
                Random rand = new Random();
                int random =rand.nextInt(999999); 
                String sql2 = "SELECT id FROM product WHERE make = '"+make+"' and model = '"+model+"' and color = '"+color+"' and yearMade = '"+year+"'";

                st = Connectivity.getConnection().createStatement();
                rs2 = st.executeQuery(sql2);
                while(rs2.next()) {
                    int totalPrice = Integer.parseInt(price);
                    Double comm = totalPrice * .035;

                    int prodID = rs2.getInt("id");      
                    String sql3 = "INSERT INTO sales VALUES('"+random+"','"+id+"','"+prodID+"','"+1+"','"+totalPrice+"',"+comm+")";
                    ps = Connectivity.getConnection().prepareStatement(sql3);
                    rs = ps.executeUpdate();
                    System.out.println(totalPrice);
                    System.out.println(comm);
                    System.out.println(ps);

                }





                JOptionPane.showMessageDialog(null, "Items Sold!");

            }

            catch (Exception e1) {
                e1.printStackTrace();
            }
        }
    });
    btnEnter.setBounds(423, 407, 130, 29);
    frame5.getContentPane().add(btnEnter);

    JButton button_1 = new JButton("Return to menu");
    button_1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Menu men = new Menu();
            men.frame2.setVisible(true);

            frame5.setVisible(false);
        }
    });
    button_1.setBounds(266, 407, 145, 29);
    frame5.getContentPane().add(button_1);

    textField_4 = new JTextField();
    textField_4.setColumns(10);
    textField_4.setBounds(353, 326, 185, 26);
    frame5.getContentPane().add(textField_4);

    JLabel label_6 = new JLabel("Year:");
    label_6.setFont(new Font("Lucida Grande", Font.PLAIN, 16));
    label_6.setBounds(264, 374, 77, 16);
    frame5.getContentPane().add(label_6);

    textField_5 = new JTextField();
    textField_5.setColumns(10);
    textField_5.setBounds(353, 364, 185, 26);
    frame5.getContentPane().add(textField_5);

    JLabel lblEmployeeId = new JLabel("Employee ID:\n\n");
    lblEmployeeId.setFont(new Font("Lucida Grande", Font.PLAIN, 16));
    lblEmployeeId.setBounds(245, 172, 121, 16);
    frame5.getContentPane().add(lblEmployeeId);

    textField_6 = new JTextField();
    textField_6.setColumns(10);
    textField_6.setBounds(353, 169, 185, 26);
    frame5.getContentPane().add(textField_6);


    JLabel imgLabel = new JLabel(new ImageIcon("/Users/jonathonmoreno/Desktop/Project/src/resize.png"));
    imgLabel.setBounds(-11, 0, 845, 521);
    frame5.getContentPane().add(imgLabel);
}
}

0 个答案:

没有答案