2016-03-15 60 views
0

我有麻煩轉換我的字符串整數。我的數據表由3列組成,其中兩列是INT類型。但是,當我開始將我的字符串到我的數據庫它提供了一個AUTO_INCREMENT錯誤:不正確的整數值:如何將我的數據從字符串轉換爲整數以避免Auto_Increment?

類:

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); 


      } 
     } 
     ); 

    } 

我的executeUpdate:

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中的值並將其插入到一個新的數據庫中。

回答

0

嘗試投對象的字符串如下

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

pst.setString(1, a); 

如果你的目標字段類型整數做到這一點。

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

顯示您的表格結構(Auto_increment)字段以便更好地考慮。 – 2016-03-15 04:19:38

+0

我仍然收到錯誤。在你自己的方法中,你如何將一個String值插入到一個Int類型的數據表中?我真的需要一個例子。 –

+0

@ChesterVacalares看到updates..Again目前還不清楚你在找什麼4 ... – 2016-03-15 06:04:30

0

您可以通過使用Integer.toString()方法將字符串轉換爲整數。只需將該字符串作爲參數傳遞即可。

+0

我已經轉換後的字符串我怎麼然後將其插入到我的數據庫?我應該使用什麼方法? –

+0

這種方法?或者我應該先轉換之前我插入它的字符串: pst.setString(2 Integer.toString(一)); –

+0

編號:497 747 015通行證:5678 –

0

通過假設你的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。所以我刪除了第一個字段,以便第二個字段成爲您的第一個準備語句參數

希望它有幫助。