`
chengyue2007
  • 浏览: 1491346 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

poi之excel导入数据库

    博客分类:
  • java
阅读更多

上一篇写了从数据库导出excel。今天继上一篇写出从excel导入数据库。数据库表有这些字段:ID,BOOK_NAME,BOOK_AUTHOR,BOOK_PUBLISH,BOOK_DATE,BOOK_ISBN,BOOK_PAGE,BOOK_PRICE。

连接数据库类:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {

private String classString="oracle.jdbc.driver.OracleDriver";
private String username="benz";
private String password="benz";
private String url="java:oracle:thin:@192.168.1.17:1521:bhdba";
private Connection con=null;

public Connection getConnection(){
   try {
    Class.forName(classString);
    con=DriverManager.getConnection(url,username,password);
   } catch (ClassNotFoundException e) {
    e.printStackTrace();
   } catch (SQLException e) {
    e.printStackTrace();
   }
   return con;
}

}

具体操纵类:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;

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;

public class ExcelToDB {

private Connection con;
private DBConnection db;
private PreparedStatement pst;
private String filePath="f:\\test.xls";

public boolean insertDB(){
  
   boolean flag=true;
   db=new DBConnection();
   con=db.getConnection();
   try {
    //文件流指向excel文件
    FileInputStream fin=new FileInputStream(filePath);
    HSSFWorkbook workbook=new HSSFWorkbook(fin);//创建工作薄
    HSSFSheet sheet=workbook.getSheetAt(0);//得到工作表
    HSSFRow row=null;//对应excel的行
    HSSFCell cell=null;//对应excel的列
   
    int totalRow=sheet.getLastRowNum();//得到excel的总记录条数
    //以下的字段一一对应数据库表的字段
    String bookName="";
    String bookAuthor="";
    String bookPublish="";
    Date bookDate=null;
    String bookIsbn="";
    int bookPage=0;
    float bookPrice=0.0f;
   
    String sql="insert into book(ID,BOOK_NAME,BOOK_AUTHOR,BOOK_PUBLISH," +
      "BOOK_DATE,BOOK_ISBN,BOOK_PAGE,BOOK_PRICE) " +
      "values(SEQ_BOOK.NEXTVAL,?,?,?,?,?,?,?)"; //SEQ_BOOK.NEXTVAL为数据库表序列
   
    for(int i=1;i<=totalRow;i++){
     row=sheet.getRow(i);
     cell=row.getCell(1);
     bookName=cell.getRichStringCellValue().toString();
     cell=row.getCell(2);
     bookAuthor=cell.getRichStringCellValue().toString();
     cell=row.getCell(3);
     bookPublish=cell.getRichStringCellValue().toString();
    
     cell=row.getCell(4);
     //格式化字符串时间
     SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
     bookDate=new Date((format.parse(cell.getRichStringCellValue().toString())).getTime());
    
     cell=row.getCell(5);
     bookIsbn=cell.getRichStringCellValue().toString();
     cell=row.getCell(6);
     bookPage=Integer.parseInt(cell.getRichStringCellValue().toString());
     cell=row.getCell(7);
     bookPrice=Float.parseFloat(cell.getRichStringCellValue().toString());
    
     pst=con.prepareStatement(sql);
     pst.setString(1,bookName);
     pst.setString(2,bookAuthor);
     pst.setString(3,bookPublish);
     pst.setDate(4,bookDate);
     pst.setString(5,bookIsbn);
     pst.setInt(6,bookPage);
     pst.setFloat(7,bookPrice);
    
     pst.execute();
    }
   
   
   } catch (FileNotFoundException e) {
    flag=false;
    e.printStackTrace();
   } catch(IOException ex){
    flag=false;
    ex.printStackTrace();
   } catch(SQLException exx){
    flag=false;
    exx.printStackTrace();
   } catch(ParseException exxx){
    exxx.printStackTrace();
   }finally{
    try {
     pst.close();
     con.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
   }
   return flag;
  
}

public static void main(String args[]){
   ExcelToDB toDB=new ExcelToDB();
   toDB.insertDB();
}

}

分享到:
评论
4 楼 chengyue2007 2014-04-28  
happy21048 写道
使用POI导入数据的时候,都有什么原因可能影响导入数据的速度啊

可以输出时间,看看是哪里影响了数度啊,例如数据库连接哪里
3 楼 happy21048 2014-04-23  
使用POI导入数据的时候,都有什么原因可能影响导入数据的速度啊
2 楼 chinaxin 2013-04-16  
小月月,咱再去北部湾玩去
1 楼 wangxl880723 2013-03-20  

相关推荐

    poi作excel导入数据库

    标题中的“poi作excel导入数据库”指的是使用Apache POI库来读取Excel文件,并将数据存储到数据库中。Apache POI是Java平台上的一个开源项目,它提供了处理Microsoft Office格式文档的能力,包括Excel(.xls和.xlsx...

    java运用poi把excel导入数据库demo

    在这个“java运用poi把excel导入数据库demo”中,我们将探讨如何利用POI库将Excel数据有效地导入Oracle数据库。 首先,我们需要理解Apache POI的工作原理。POI提供了HSSF和XSSF两个API,分别用于处理旧版的BIFF8(....

    poi导Excel入数据库代码实例

    poi导Excel入数据库

    利用POI解析excel并存入数据库demo

    这个 demo 的核心是将 Excel 文件中的数据与数据库交互,实现数据的导入。通过 POI,我们可以方便地处理各种格式的 Excel 文件,而 MySQL 数据库则提供了稳定的数据存储。这个过程对于数据迁移、数据备份或数据分析...

    基于poi的excel导入.doc

    在本节中,我们介绍了POI库的基本概念,包括POI简介、POI中的Excel处理、Excel导入Java、POI中的Excel导入示例等。同时,我们还介绍了CxptExpertDao和IExpertImportService接口,以及ExpertImportServiceImpl类和...

    POI解析Excel,最高支持2010版本的Excel导入数据库

    标题中的“POI解析Excel,最高支持2010版本的Excel导入数据库”是指使用Apache POI库来处理Microsoft Excel文件,并将数据导入到数据库中。Apache POI是一个开源项目,它提供了Java API来读取、写入和修改Microsoft ...

    用poi将Excel数据导入数据库/java tools.jar动态类的生成

    在这个特定的案例中,我们看到一个利用POI库读取Excel数据并将其导入数据库的实践。同时,还涉及到使用Java的tools.jar来动态生成类,即DynamicExcel类,以提供更灵活的代码生成和执行。 首先,让我们详细了解一下...

    POI实现Excel导入导出并附带加载进度条

    本项目通过Apache POI实现了Excel的导入与导出功能,并在操作过程中加入了进度条展示,增强了用户体验。 首先,Apache POI的核心类HSSFWorkbook和XSSFWorkbook分别用于处理老版本的.xls和新版本的.xlsx文件。在导入...

    Java 使用poi导入excel 并使用xml做数据验证

    在本项目中,我们结合了POI库和XML技术来实现Excel数据的验证与导入数据库。 首先,Apache POI提供了HSSF和XSSF两个API,分别用于处理老版本的BIFF8格式(.xls)和新版本的OOXML格式(.xlsx)。在这个案例中,我们...

    springboot实现将Excel导入数据库

    要实现Excel导入功能,我们首先需要处理Excel文件。在Java中,我们可以使用Apache POI库来操作Excel文件。POI提供了丰富的API,可以读取、写入Excel文件。在本例中,我们需要使用HSSFWorkbook(对于老版本的Excel ....

    java web Excel导入数据库

    综上所述,Java Web中Excel数据导入数据库的过程涉及到文件上传、Excel读取、数据处理和数据库操作等多个技术环节。通过合理选择和使用各种库,我们可以构建高效且可靠的导入系统,满足企业对大量数据处理的需求。在...

    Java poi 实现excel导入导出

    在提供的“java-excel导入导出”压缩包中,可能包含了示例代码、说明文档以及测试数据,可以帮助初学者快速理解和使用Java POI进行Excel操作。通过学习和实践这些示例,你可以掌握Java POI库的基本用法,并能灵活...

    JAVA实现Excel导入数据库

    以上就是使用Java实现Excel数据导入数据库的主要步骤和关键知识点。通过熟练掌握这些技术,你将能够构建出高效且可靠的Excel到数据库导入系统。在实际应用中,还可能需要根据具体需求进行调整和定制,如错误处理、...

    大数据Excel通过POI导入数据库通用设计方案

    【大数据Excel通过POI导入数据库通用设计方案】 大数据处理中,Excel作为常见的数据交换格式,其导入到数据库的需求频繁出现。为了提高效率并避免重复工作,本方案旨在提供一种通用的Excel导入策略,利用Apache POI...

    Excel导入数据库and数据库数据导入Excel

    首先,让我们了解Excel导入数据库的过程。在Excel中,我们可能拥有大量的结构化数据,如销售记录、客户信息等,需要将其存储到关系型数据库中,如MySQL、Oracle或SQL Server。JDBC提供了一种标准的方式来连接和操作...

    excel表导入数据库 数据库导出excel(idea平台)

    - 数据校验:在将Excel数据导入数据库前,进行数据格式和完整性检查。 - 错误处理:捕获并处理可能出现的异常,如文件读取错误、数据库连接失败等。 - 性能优化:大量数据导入时,可以使用批处理操作,减少与数据库...

    javaexcel导入数据库.pdf

    由于给定的内容中存在一些OCR识别错误和重复文字,我将基于提供的有效信息,对Java操作Excel并将其数据导入数据库的知识点进行详细说明。为方便理解和执行,我会先修正可能的OCR扫描错误,并排除重复内容,然后详细...

    Springboot+Poi实现Excel的导入导出

    本项目结合了Spring Boot、MyBatis、Apache POI和MySQL,实现了Excel数据的导入导出功能,这对于数据处理和分析尤其有用。下面我们将深入探讨这些技术及其在项目中的应用。 首先,Spring Boot以其“约定优于配置”...

    SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip

    在本项目中,"SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip",我们主要关注的是如何利用Java技术栈来处理Excel文件,并与数据库进行交互。以下是相关知识点的...

    java实现Excel数据导入到数据库

    在Java编程环境中,将Excel数据导入到数据库以及将数据库数据导出到Excel是常见的数据处理需求。本篇文章将深入探讨如何使用Java实现这两个功能,主要涉及的技术栈包括Apache POI库用于操作Excel,以及JDBC(Java ...

Global site tag (gtag.js) - Google Analytics