不正确的整数值:如何将我的数据从 String 转换为 Int 以避免 Auto_Increment?

Incorrect Integer Value: How do i convert my Data from String to Int to avoid Auto_Increment?

我在将字符串转换为整数时遇到问题。我的数据 Table 由 3 列组成,其中两列是 INT 类型。但是当我开始将我的字符串插入我的数据库时,它给出了 Auto_Increment 错误:

Class:

public class Strong extends javax.swing.JFrame {

  String a;

    public Apply() {
        initComponents();
         jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener()
        {
            @Override
            public void valueChanged(ListSelectionEvent e)
            {
                int selectedRow = jTable1.getSelectedRow();
                a = (String) jTable1.getValueAt(selectedRow, 0);


            }
        }
        );

    }

我的执行更新:

try{

           Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/application","root","");
            String sql= "insert into Mycart values(?,?,?)";
            PreparedStatement pst = con.prepareStatement(sql);            
            pst.setString(1, (String)a);
            pst.setString(2, (String)a);
            pst.setString(3, (String)a);

            pst.executeUpdate();
            JOptionPane.showMessageDialog(null, "Added to Cart");

        }
        catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }

这实际上是对我之前的问题的跟进。我的问题是如何将我的字符串转换为整数,然后将其插入到我的数据库中?如果您可能会问我从我的 jTable 中获取了我的字符串,然后从我的数据库中获取了它。我现在要做的是获取 jTable 中的值并将其插入到新数据库中。

您可以使用 Integer.toString() 方法将字符串转换为整数。只需将字符串作为参数传入即可。

尝试将对象转换为字符串,如下所示

 String a = String.valueOf(jTable1.getValueAt(selectedRow, 0)); 

 pst.setString(1, a);

如果您的目标字段类型是整数,请执行此操作。

 pst.setInt(1,Integer.ParseInt(a));

假设您的 auto_increment 字段是您的主键,并且您试图将第一个值放在那里,最好试试这个。

        String sql= "insert into Mycart (your_string_field, your_int_field) values(?,?)";
        PreparedStatement pst = con.prepareStatement(sql);
        pst.setString(1, "your_data_goes_here"); // for string
        pst.p.setInt(2, Integer.parseInt("your_data_goes here")); // for integer

        pst.executeUpdate();
        JOptionPane.showMessageDialog(null, "Added to Cart");

注:- 对于数据库中的自增字段,插入时不需要加值。这就是它被称为 auto_increment 的原因。所以我删除了第一个字段,所以第二个字段成为您的第一个准备好的语句参数。

希望对您有所帮助。