http://chengyue2007.iteye.com/blog/455911
上一篇写了从数据库导出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();
}
}
取得Excel文件的总行数和总列数
HSSFSheet hssheet = wb.getSheetAt(0);
HSSFRow row = (HSSFRow) hssheet.getRow(0);
int rowNum = hssheet.getPhysicalNumberOfRows();
short colNum = (short)hssheet.getRow((short)0).getPhysicalNumberOfCells();
分享到:
相关推荐
在这个"利用POI解析excel并存入数据库demo"中,我们将关注如何使用 POI 库来读取 Excel 文件,并将数据有效地存入 MySQL 数据库。 首先,要开始使用 POI,你需要在你的项目中引入相应的依赖。如果你使用的是 Maven...
在这个特定的案例中,我们看到一个利用POI库读取Excel数据并将其导入数据库的实践。同时,还涉及到使用Java的tools.jar来动态生成类,即DynamicExcel类,以提供更灵活的代码生成和执行。 首先,让我们详细了解一下...
标题中的“poi作excel导入数据库”指的是使用Apache POI库来读取Excel文件,并将数据存储到数据库中。Apache POI是Java平台上的一个开源项目,它提供了处理Microsoft Office格式文档的能力,包括Excel(.xls和.xlsx...
在Java编程环境中,将Excel数据导入到数据库以及将数据库数据导出到Excel是常见的数据处理需求。本篇文章将深入探讨如何使用Java实现这两个功能,主要涉及的技术栈包括Apache POI库用于操作Excel,以及JDBC(Java ...
在这个“java运用poi把excel导入数据库demo”中,我们将探讨如何利用POI库将Excel数据有效地导入Oracle数据库。 首先,我们需要理解Apache POI的工作原理。POI提供了HSSF和XSSF两个API,分别用于处理旧版的BIFF8(....
在服务层,我们可以编写逻辑来读取Excel文件,然后调用DAO层的方法将数据插入MySQL数据库。 以下是具体步骤: 1. **读取Excel文件**:使用POI,创建一个`Workbook`对象,根据Excel文件类型选择`HSSFWorkbook`或`...
- 数据校验:在将Excel数据导入数据库前,进行数据格式和完整性检查。 - 错误处理:捕获并处理可能出现的异常,如文件读取错误、数据库连接失败等。 - 性能优化:大量数据导入时,可以使用批处理操作,减少与数据库...
在本主题中,我们将讨论如何利用Spring 3.0 MVC和Apache POI库来处理Excel文件,实现批量导入数据库和导出数据的功能。 Apache POI是一个强大的开源库,专门用于读写Microsoft Office格式的文件,特别是Excel(....
将读取到的数据转换为适合插入数据库的格式,通过MyBatis的SqlSession执行相应的INSERT语句,将数据存入MySQL数据库。 3. **异常处理**:在导入过程中,可能需要处理各种异常,如文件不存在、格式不正确、数据校验...
接下来是将数据从Excel导入到SQL Server的关键步骤。这里使用了`SqlDataAdapter`和`SqlCommandBuilder`来处理数据插入操作: ```vb Dim dataTable1 As DataTable = New DataTable() Dim sqlDA1 As SqlClient....
在本项目中,"SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip",我们主要关注的是如何利用Java技术栈来处理Excel文件,并与数据库进行交互。以下是相关知识点的...
在本项目中,我们结合了POI库和XML技术来实现Excel数据的验证与导入数据库。 首先,Apache POI提供了HSSF和XSSF两个API,分别用于处理老版本的BIFF8格式(.xls)和新版本的OOXML格式(.xlsx)。在这个案例中,我们...
基于Java反射机制的POI实现Excel数据导入_导出.pdf 本文主要介绍了基于Java反射机制的POI实现Excel数据导入和导出的技术。该技术通过采用Java反射机制和自定义注解原理,实现了数据库与Excel文件之间的数据交互。...
7. **批量插入数据库**:通过MyBatis的SqlSession,调用Mapper接口的`insertUser`方法,将数据批量插入到数据库。 8. **配置信息.sql**:可能需要一个SQL脚本文件(如information.sql),用于创建数据库表结构,...
在本项目中,需要建立到MySQL数据库的连接,执行INSERT或UPDATE语句,以便将Excel数据导入数据库。如果数据库中已存在相同数据,根据描述,会执行UPDATE操作,这需要在SQL语句中设置条件判断。 对于数据导入,如果...
为了提高效率并避免重复工作,本方案旨在提供一种通用的Excel导入策略,利用Apache POI库来解析Excel,并通过规则配置实现数据的自动导入。 一、总体设计思路 1. **抽象通用组件**:提取Excel读取和数据库存储的...
总结起来,Java操作Excel和将数据导入数据库涉及的关键知识点包括:使用JExcelApi库读写Excel文件,理解Workbook、Sheet、Row和Cell的概念,利用JDBC进行数据库连接和操作,以及熟悉SQL语句的编写。通过这些技术,你...
Excel读取数据导入DB2数据库需要使用POI库读取Excel文件,并使用JDBC API连接DB2数据库,并执行SQL语句将Excel数据导入到数据库中。同时,我们还需要考虑实现一个通用转换类,以便于提高代码的灵活性和可维护性。
在本项目中,"spring boot+mybatis plus+easy poi实现数据库导出成excel和excel导入到数据库",开发者利用了Spring Boot、MyBatis Plus和EasyPoi库来实现了一个功能强大的数据交互系统,允许用户将数据库中的数据...