java - 如何将表的所有数据都带入JTable并插入到数据库中

标签 java database swing jtable

你好,这段代码中的 friend 们,我想将输入到 JTable 中的所有数据放入我的数据库中,但是在将数据输入到数据库的 for 循环中出现错误,结果如下: http://i67.tinypic.com/5mwgt4.png

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

最佳答案

首先要做的是在安装此jar 后下载rs2xml.jar,将其添加到您的库中。因此,您可以将 ResultSet 填充到 TableModel。我使用 DB Derby 制作了一个示例 gui,我可以在其中将其插入并填充到表模型中。我在这里使用了准备好的语句。

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/

关于java - 如何将表的所有数据都带入JTable并插入到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36154145/

相关文章:

java - TextureView:在后台执行 TextureView.getBitmap()

java - 用按钮单击时的查询替换 jtable 中的先前行 - java swing

JavaFX 预加载器和 Netbeans

database - 来自 pgadmin4 的 PostgreSQL pg_restore 错误显示角色不存在

java - 使用 java 将 jTable 内容打印到一张纸条

java - 在循环中执行 SQL 查询

java - 关闭连接会自动关闭语句和结果集吗?

swift - 如何使用flatmap将快照数据存储到变量中

java - 我能否在 Mac OS X 上为 Swing 获得原生外观的 JPopupMenu 外观?

Java Swing 卡片布局-展示功能