2016-03-22 3 views
1

こんにちは、このコードでは、私のすべてのデータをJTableに持ってきてデータベースに挿入したいのですが、 http://i67.tinypic.com/5mwgt4.pngテーブルのすべてのデータをJTableに入れてデータベースに挿入する方法

final void tabledata(){ 

int rows=jt.getRowCount(); 
int colms=jt.getColumnCount(); 
int bpss=0,spss=0; 

for(int i=0;i<colms;i++){ 
for(int j=0;j<rows;j++) { 
if(i==0){ 
    String qtys= jt.getValueAt(j,i).toString(); 
    int qtyss=Integer.parseInt(qtys); 
    System.out.print(qtyss); 
    try{stmt.execute("INSERT INTO ITEMS(QTY) VALUES("+qtyss+")");} 
    catch (SQLException ex) {ex.printStackTrace();} 
}else{ 
if(i==1){ 

    String codes= jt.getValueAt(j,i).toString(); 
    int codess=Integer.parseInt(codes); 
    System.out.print(codess); 
    try{stmt.execute("INSERT INTO ITEMS(CODE) VALUES("+codess+")");} 
    catch (SQLException ex) {ex.printStackTrace();} 
    } else{ 
if(i==2){ 

    String names=jt.getValueAt(j,i).toString(); 
    System.out.print(names); 
    try{stmt.execute("INSERT INTO ITEMS(NAME) VALUES('"+names+"')");} 
    catch (SQLException ex) {ex.printStackTrace();} 
    } else{ 
if(i==3){ 

    String bps= jt.getValueAt(j,i).toString(); 
    bpss=Integer.parseInt(bps); 
    System.out.print(bpss); 
    try{stmt.execute("INSERT INTO ITEMS(BUYPRICE) VALUES("+bpss+")");} 
    catch (SQLException ex) {ex.printStackTrace();} 
    } else{ 
if(i==4){ 

    String sps= jt.getValueAt(j,i).toString(); 
    spss=Integer.parseInt(sps); 
    System.out.print(spss); 
    try{stmt.execute("INSERT INTO ITEMS(SELLPRICE) VALUES("+spss+")");} 
    catch (SQLException ex) {ex.printStackTrace();} 
    }}}}}}} 

}

答えて

0

INSERTはデータベースに完全に新しいレコードを追加します。ここでは、データベースとの結果です。 したがって、INSERT QTYを使用すると、数量のみのレコードが作成され、その他のフィールドはすべて空白になります。 その後、コードを挿入するなどしても同じことができます。新しいレコードは、他のフィールドには何もせずに作成されます。 私がお勧めするのは、各行を読み込んだ後、次のような単一のSQL文を作成することです。 INSERT INTO ITEMS(QTY、CODE、NAME、BUYPRICE、SELLPRICE)VALUE(..、..、..、。 )。

これ

はで満たされたすべてのフィールドを持つレコードを作成します。実行する

+0

あなたに感謝します。 – samer

1

まず最初は、自分のライブラリに追加このをインストールした後rs2xml.jarをダウンロードすることです。そのため、ResultSetをTableModelに取り込むことができます。私はテーブルDerbyを使用してサンプルGUIを作成し、テーブルモデルに挿入して取り込めます。私はここでPrepared Statementを使用しました。

enter image description here

private void addBtnActionPerformed(java.awt.event.ActionEvent evt) {          
    String inputEmployee = employeeTf.getText();//textfields 
    String inputDepartment = departmentTf.getText();//textfields 

    if(inputEmployee.isEmpty() && inputDepartment.isEmpty()){ 
     JOptionPane.showMessageDialog(null, "Please fill up!"); 
    }//If blank 
    else if(inputEmployee.isEmpty()){ 
     JOptionPane.showMessageDialog(null, "Employee Name should not be left blank");//If blank 
    } 
    else if(inputDepartment.isEmpty()){ 
     JOptionPane.showMessageDialog(null, "Department should not be left blank");//If blank 
    } 
    else{ 
     String myQuery = "INSERT INTO SAMPLE (EMPLOYEENAME,DEPARTMENT) VALUES (?,?)"; 

     try(Connection myCon = DBUtilities.getConnection(DBType.JDBC);//Establish the connection 
     PreparedStatement myPs = myCon.prepareStatement(myQuery); 
      ){ 

      myPs.setString(1, employeeTf.getText()); 
      myPs.setString(2, departmentTf.getText()); 

      myPs.executeUpdate(); // Executes the SQL statement in this PreparedStatement object, which must be an SQL Data Manipulation Language (DML) statement, such as INSERT, UPDATE or DELETE; 

      System.out.print("Record is inserted"); 

      DefaultTableModel model = (DefaultTableModel) Table_Employee.getModel(); 
      model.addRow(new Object[]{employeeTf.getText(),departmentTf.getText()}); 
     } catch (SQLException ex) { 
      DBUtilities.processException(ex); 
     } 
    }//end of else 
} 

Sample

テーブルモデルを作成する構文:

DefaultTableModel model = (DefaultTableModel) Table_Employee.getModel(); 
      //yourTableModelName   //yourTableName 
model.addRow(new Object[]{employeeTf.getText(),departmentTf.getText()}); 
          //yourTextfield  //yourTextfield 

は、この情報がお役に立てば幸いです。 rs2xml.jar http://en.osdn.jp/projects/sfnet_finalangelsanddemons/downloads/rs2xml.jar/

関連する問題