站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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;

报了以上几个错误.能不能再给点指导呢?


↑返回目录
前一篇: 请教生成CSV文件乱码问题,大虾来看看呀
后一篇: 怎么样才能控制图片的点击效果?让图片点击时,换张图