首页 新闻 会员 周边 捐助

java - jdbc 保存table中数据到数据库sql server

0
悬赏园豆:10 [已解决问题] 解决于 2016-05-17 19:33

    /*
     * 将表格里的修改内容,全部保存到数据库里面
     */
    table.getCellEditor().stopCellEditing();     //先结束单元格的编辑
        Vector <Object> v_1 = new Vector<Object>();
    for(int a=0; a<table.getRowCount(); a++)   //循环复制表格中数据到向量集V_1
       for(int b=0; b<table.getColumnCount(); b++)
          v_1.add(tableModel.getValueAt(a, b));
    
    int n=0;                                     //定义变量n判断数据库中受到影响的数据表行数
    Iterator<Object> its = v_1.iterator();
    while(its.hasNext()){                        //循环遍历向量集,并将数据保存到数据库
       Connection conn = null;
       PreparedStatement preStat = null;
       try{
           conn = com.dao.DBUtils.getConnection();
           String sql = "insert into 客房信息表 values ( ? , ? , ? , ? , ? , ? , ? , ? )";
           preStat = conn.prepareStatement(sql);
           preStat.setObject(1,  its.next());       //对应数据表字段    员工编号 varchar(12)
           preStat.setObject(2,  its.next());       //对应数据表字段    员工姓名 varchar(12)
           preStat.setObject(3,  its.next());       //对应数据表字段    身份证 varchar(12)
           preStat.setObject(4,  its.next());       //对应数据表字段    性别 char(2)
           preStat.setObject(5,  its.next());       //对应数据表字段    联系电话 varchar(11)
           preStat.setObject(6,  its.next());      //对应数据表字段    入职时间 datetime
           preStat.setObject(7,  its.next());      //对应数据表字段    职位 char(8)
           preStat.setObject(8,  its.next());      //对应数据表字段    年龄 int
           preStat.executeUpdate();
           n=n+1;
           tableModel.removeRow(0);              //操作完成后,删除表格中的数据
      }catch(Exception e1){
            e1.printStackTrace();
      }finally{
             DBUtils.close(null, preStat, conn);
      } 
  }

附数据表:附错误类型:

com.microsoft.sqlserver.jdbc.SQLServerException: 列名或所提供值的数目与表定义不匹配。
 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
 at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1522)

衿沫青冥的主页 衿沫青冥 | 初学一级 | 园豆:187
提问于:2016-05-17 18:26
< >
分享
最佳答案
0

debug

收获园豆:10
小光 | 小虾三级 |园豆:1766 | 2016-05-17 18:33

最好在insert语句的表后加上具体列

小光 | 园豆:1766 (小虾三级) | 2016-05-17 18:34

@小光: 插入错了表了,我那个擦啊!我TM苦苦思索了两天,真的是两天啊!我真是眼瞎了,菜啊!、、、感谢兄弟提醒。

衿沫青冥 | 园豆:187 (初学一级) | 2016-05-17 19:32

@衿沫青冥: 嗯。。没事

小光 | 园豆:1766 (小虾三级) | 2016-05-18 09:23
其他回答(1)
0

他这个debug信息说得很明显啊  下次注意点就好了

WilliamJing | 园豆:209 (菜鸟二级) | 2016-05-23 23:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册