Java 整数值不正确:如何将数据从字符串转换为Int以避免自动递增?

Java 整数值不正确:如何将数据从字符串转换为Int以避免自动递增?,java,string,netbeans,int,auto-increment,Java,String,Netbeans,Int,Auto Increment,我无法将字符串转换为整数。我的数据表由3列组成,其中两列为INT类型。但当我开始将字符串插入数据库时,会出现自动递增错误: 类别: public class Strong extends javax.swing.JFrame { String a; public Apply() { initComponents(); jTable1.getSelectionModel().addListSelectionListener(new ListSele

我无法将字符串转换为整数。我的数据表由3列组成,其中两列为INT类型。但当我开始将字符串插入数据库时,会出现自动递增错误:

类别:

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又从我的数据库中得到了字符串。我现在要做的是获取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");
注意:- 对于数据库中的自动增量字段,不需要在插入时添加值。这就是为什么它被称为自动增量。所以我删除了第一个字段,第二个字段成为您的第一个准备语句参数


希望有帮助。

转换字符串后,如何将其插入数据库?我应该用什么方法?这是什么方法?或者我应该在插入字符串之前先转换它:pst.setString(2,Integer.toString(a));Id:497 747 015 Pass:5678使用将整数作为输入的方法。你的IDE应该告诉你这一点。显示你的表结构(自动增量)字段以便更好地考虑。我仍然收到了错误。在您自己的方法中,如何向Int类型数据表插入字符串值?我真的需要一个例子。我在寻找一种将字符串插入数据库的方法,但每次运行时都会出现以下错误:第1行的“Price”列的整数值不正确:“SGS2”。我反复查看了代码,我意识到部分原因应归咎于此代码:int selectedRow=jTable1.getSelectedRow();a=(字符串)jTable1.getValueAt(selectedRow,0);我认为这段代码只接受我的“Model”行的值。它不占用其余行(价格、库存)。有没有办法编辑这个?我们有没有可能使用Teamviewer?这样你就可以探索我的代码了?只是一个建议,但如果不是,那没关系。