想用POI读取EXCEL导入DB2数据库,在JSP中如何调用,完成导入数据库的功能
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( "数据库连接失败 ");
}
}
}
--------------------编程问答-------------------- 怎么没有人理呀,是不是嫌分少,我也是倾囊了呀,希望大侠们帮帮小弟吧 --------------------编程问答-------------------- POI有风险,数据量大会OOM
最好用csv格式。可以减少oom 的几率 --------------------编程问答-------------------- input的type改成"file" 就可以浏览文件了 --------------------编程问答-------------------- csv文件不知道搜集来的数据能不能导成那样的,我直接操作数据库的导出导入都有的是csv格式的。我现在主要是不会改JSP和那个.JAVA文件,不知道怎么利用,还望大侠指点 --------------------编程问答-------------------- 大侠们帮帮忙呀! --------------------编程问答-------------------- 没有人回?
补充:Java , Web 开发