CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

PreparedStatement插入的问题?

楼主ajzhn(梦醉生)2006-05-04 11:00:10 在 Java / Web 开发 提问

我的数据库用一个excel文件,采用odbc-DSN数据源方式进行连接。  
  我的应用是用户在客户端上传一个excel文件,在服务端接收这个文件,并用poi读取该文件,最后把取得的数据插入(更新)到数据库中,采用PreparedStatement语句进行操作,部份代码如下:  
  <%  
          if(!DBcon.openConnection("ty")   ||   !boolunload){  
                          out.print("数据库连接失败!");  
  response.sendRedirect("errorpage.jsp");  
  }  
   
  POIFSFileSystem   fs   =   new   POIFSFileSystem(new   FileInputStream(dir));  
  HSSFWorkbook   wb   =   new   HSSFWorkbook(fs);  
  HSSFSheet   sheet   =   wb.getSheetAt(0);  
  HSSFRow   row   =   null;  
  String   cellvalue="";  
   
  Connection   conn   =DBcon.getconn();  
   
  updatesql="UPDATE   "   +   sheetname+   "   SET   "+xueke+   "=   ?   "   +   "   WHERE   准考证号=   ?";    
  PreparedStatement     prepstmt   =   conn.prepareStatement(updatesql);    
   
  out.println(updatesql);  
  //下面把从上传的excel中读取的数据插入到数据库中  
                try{  
              colj=sheet.getRow(0).getPhysicalNumberOfCells();  
       
          for(rowi=1;rowi<sheet.getPhysicalNumberOfRows();rowi++){  
                      row   =   sheet.getRow(rowi);  
                                              cell   =   row.getCell((short)(colj-1));  
                                              if(cell   ==   null){  
                                                          //prepstmt.setString(   1,   "0.0");  
          //cell   =   row.getCell((short)0);  
        //   prepstmt.setString(   2,   cell.getStringCellValue());  
  //   prepstmt.executeUpdate();  
  continue;  
                              }else{  
                      switch   (cell.getCellType())    
                                {  
                            case   HSSFCell.CELL_TYPE_NUMERIC:  
                              cellvalue   =   ""+cell.getNumericCellValue();  
                              break;  
   
                            case   HSSFCell.CELL_TYPE_STRING:  
                                cellvalue   =   cell.getStringCellValue();  
                              break;  
    case   HSSFCell.CELL_TYPE_BLANK:  
              cellvalue="0";  
      break;      
                              default:  
                                }        
                                            prepstmt.setString(   1,   cellvalue);  
    cell   =   row.getCell((short)0);  
    prepstmt.setString(   2,   cell.getStringCellValue());    
    //prepstmt.executeUpdate();  
    prepstmt.addBatch();    
                                }      
         
             
                        //prepstmt.clearParameters();  
                          }  
                              prepstmt.executeBatch();  
       
      }catch(Exception   e){  
                response.sendRedirect("errorpage.jsp");  
      }finally{  
       
                if(prepstmt!=null){  
                                                        prepstmt.close();  
                                        }  
                                     
                          if(DBcon!=null){  
                                                    DBcon.close();  
                                          }  
      }  
       
                     
   
  %>  
   
  现在的问题是插入没报错,在JSP页面中也能显示插入后数据,但在在我关掉tomcat后,打开数据库(一个excel文件)后,却并没有看到插入的数据,不知是何原因?各位看看,是何原因,谢谢!  
  问题点数:20、回复次数:2Top

1 楼ruanjiantaotao(涛涛)回复于 2006-05-04 11:32:13 得分 0

楼主应该提交事务,commit一下就可以了,或者在一开始就设置setAutoCommit(true);Top

2 楼ajzhn(梦醉生)回复于 2006-05-04 12:37:34 得分 0

我用元数据查看过了,exce文件作为数据源是不支持事务的Top

相关问题

关键词

得分解答快速导航

  • 帖主:ajzhn

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo