不正确的整数值:如何将我的数据从 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 的原因。所以我删除了第一个字段,所以第二个字段成为您的第一个准备好的语句参数。
希望对您有所帮助。
我在将字符串转换为整数时遇到问题。我的数据 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 的原因。所以我删除了第一个字段,所以第二个字段成为您的第一个准备好的语句参数。
希望对您有所帮助。