当前页面: 开发资料首页 → JSP 专题 → 求一段jsp写的EXCLE数据导入oracle数据库的代码.(100分求)
求一段jsp写的EXCLE数据导入oracle数据库的代码.(100分求)
摘要: 求一段jsp写的EXCLE数据导入oracle数据库的代码.(100分求)
最好有注释的~谢谢大家了~
JAVA文件:ReadExcelTest.java
--------------------------------------------------------------
package com.mypack;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.sql.*;
import java.io.*;
import java.util.ArrayList;
import java.sql.Connection;
public class ReadExcelTest
{
private Connection con;
String DBDriver="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@192.168.0.1:1521:dbname";
String USER="username";
String PWD="password";
private ArrayList
listFirstColum = new ArrayList();
private ArrayList listSecondColum = new ArrayList();
//连接数据库
public ReadExcelTest() throws Exception
{
try
{
Class.forName(DBDriver);
con=DriverManager.getConnection(url,USER,PWD);
}
catch(Exception e)
{
e.printStackTrace();
throw(new Exception("Sorry,database connecting failed!"));
}
}
//从excel中读取数据存入ArrayList中
public void readExcel(String sFileName)
{
try
{
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(sFileName));//读取excel文件
HSSFSheet sheet = workbook.getSheetAt(0);//读取第一个sheet
for(int i=0;i<=sheet.getLastRowNum();i++)//循环取得所有行
{
if(sheet.getRow(i)!=null)
{
HSSFRow aRow = sheet.getRow(i);//行数
HSSFCell cellFirstColum = aRow.getCell((short)0);//第一列
HSSFCell cellSecondColum = aRow.getCell((short)1);//第二列
//把数据存入list里备用
listFirstColum.add((int)cellFirstColum.getNumericCellValue());//假定第一列为数字型
listSecondColum.add(cellSecondColum.getStringCellValue());//假定第二列为字符串型
}
}
System.out.println("Excel读取成功!");
}catch(Exception e)
{
e.printStackTrace();
}
}
//从ArrayList中把数据写入数据库
public void insertData(String sFileName)
{
//读取
readExcel(sFileName);
String sqlInsert = "insert into tbl_name"
+"(first_colum,second_colum)values(?,?)";
//插入
try
{
for (int i=0;i{
PreparedStatement pstmt=con.prepareStatement(sqlInsert);
pstmt.setInt(1, listFirstColum.get(i));
pstmt.setString(2, listSecondColum.get(i).toString());
pstmt.execute();
System.out.println("正在导入第 "+(i+1)+" 条记录");
}
System.out.println("导入完毕!");
}catch(Exception e)
{
e.printStackTrace();
}
}
}
JSP:test.jsp
-----------------------------------------
<%@ page pageEncoding="GB2312"%>
<%@ page import="com.mypack.ReadExcelTest" %>
<%
ReadExcelTest read = new ReadExcelTest();
read.insertData("D://test.xls");
%>
基本上改改数据库连接就能用了,请根据Excel文件的具体情况配置列的定义部分。
com.mypack;org.apache;ArrayList;
报了以上几个错误.能不能再给点指导呢?