JSP前台和.java文件如下,但不知道怎样写JSP代码调用浏览得到的EXCEL文件,导入DB2数据库。我是刚开始学JSP的一个菜鸟,还望各位大侠能多多帮忙。
JSP前台代码:
<table border="1">
    <tr>
      <td><input type="file" name="logo"/></td>
    </tr>
    <tr>
      <td>
        
        <div align="center">
          <input type="submit" name="import" id="import" value="导入" />
        </div></td>
    </tr>
  </table>
JAVA代码,这我在网上找的,想利用一下,POI包,我已下载。
import   java.io.FileInputStream; 
import   java.io.IOException; 
import   java.sql.Connection; 
import   java.sql.DriverManager; 
import   java.sql.SQLException; 
import   java.sql.Statement; import   org.apache.poi.hssf.usermodel.HSSFCell; 
import   org.apache.poi.hssf.usermodel.HSSFRow; 
import   org.apache.poi.hssf.usermodel.HSSFSheet; 
import   org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import   org.apache.poi.poifs.filesystem.POIFSFileSystem; public   class   POITest   { 
  private   static   Connection   conn   =   null; 
  private   static   Statement   stmt   =   null; 
  private   static   boolean   connectDB2()   { 
String ClassName="com.ibm.db2.jcc.DB2Driver";
    String   url="jdbc:db2://localhost:50000/FCFDB"; 
    String username="administrator";
    String password="123456";
        //加载驱动程序以连接数据库 
    try   { 
      //添加类库驱动包db2jcc.jar和db2jcc_license_cu.jar 
      Class.forName(ClassName);
      url="jdbc:db2://localhost:50000/FCFDB";  
      //添加类库驱动包db2java.jar 
      //Class.forName( "com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); 
      //url   =   "jdbc:db2:njtcdata "; 
      conn   =   DriverManager.getConnection(url,   username,   password); 
      stmt   =   conn.createStatement(); 
    } 
    //捕获加载驱动程序异常 
    catch   (ClassNotFoundException   cnfex)   { 
      System.err.println( "装载JDBC驱动程序失败。 "); 
      cnfex.printStackTrace(); 
      return   false; 
    } 
    //捕获连接数据库异常 
    catch   (SQLException   sqlex)   { 
      System.err.println( "无法连接数据库 "); 
      sqlex.printStackTrace(); 
      //System.exit(1);   //   terminate   program 
      return   false; 
    } 
    return   true; 
  }   private   static   boolean   readExcelToDB2()   { 
    POIFSFileSystem   fs   =   null; 
    HSSFWorkbook   wb   =   null; 
    try   { 
      fs   =   new   POIFSFileSystem(new   FileInputStream( "c:\\test.xls ")); 
      wb   =   new   HSSFWorkbook(fs); 
    }   catch   (IOException   e)   { 
      e.printStackTrace(); 
      return   false; 
    } 
    HSSFSheet   sheet   =   wb.getSheetAt(0); 
    HSSFRow   row   =   null; 
    HSSFCell   cell   =   null; 
    String   name   =   " "; 
    int   id   =   0; 
    int   rowNum,   cellNum; 
    int   i; 
    rowNum   =   sheet.getLastRowNum(); 
    for   (i   =   0;   i   <=   rowNum;   i++)   { 
      row   =   sheet.getRow(i); 
      //cellNum   =   row.getLastCellNum(); 
      cell   =   row.getCell((short)   0); 
      name   =   cell.getStringCellValue(); 
      cell   =   row.getCell((short)   1); 
      id   =   (int)   cell.getNumericCellValue(); 
      String   sql   =   "insert   into   TEST(ID,   NAME)   values( "   +   id   +   ", ' "   +   name   +   " ') "; 
      try   { 
        stmt.executeUpdate(sql); 
      }   catch   (SQLException   e1)   { 
        e1.printStackTrace(); 
        return   false; 
      } 
    } 
    return   true; 
  }   public   static   void   main(String[]   args)   { 
    if   (connectDB2()==true){ 
      if   (readExcelToDB2()==true) 
        System.out.println( "数据导入成功 "); 
      else 
        System.out.println( "数据导入失败 "); 
    } 
    else{ 
      System.out.println( "数据库连接失败 "); 
    } 
  } 

解决方案 »

  1.   

    POI有风险,数据量大会OOM
    最好用csv格式。可以减少oom 的几率
      

  2.   

    input的type改成"file" 就可以浏览文件了
      

  3.   

    csv文件不知道搜集来的数据能不能导成那样的,我直接操作数据库的导出导入都有的是csv格式的。我现在主要是不会改JSP和那个.JAVA文件,不知道怎么利用,还望大侠指点