随着Web项目的不断增多,无论是企业内部的数据维护,还是对外发布的数据交流,都需要使用到数据库。而将Web项目中的数据导入到数据库中,是一个常见的需求。这时我们就需要使用一些工具来完成这一任务。其中,POI工具是一个非常常用的工具,它可以帮助我们将从Web项目中提取出来的数据进行处理,并将其导入到数据库中。
POI工具是一个用于对Microsoft Office格式文件进行操作的Java库。它可以打开、编辑、保存Microsoft Excel、Word和PowerPoint格式的文件。在时,我们需要使用POI的Excel读写功能来处理Excel格式的数据。
我们需要准备好Excel数据表格。这个表格应该包含所有要导入到数据库中的数据,每个工作表应该对应一个表格。然后,我们需要使用POI的API来读取Excel数据,如下所示:
“`
FileInputStream inputStream = new FileInputStream(new File(“data.xlsx”));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0); //获取之一个工作表
Iterator iterator = sheet.iterator();
while (iterator.hasNext()) {
Row currentRow = iterator.next();
//处理当前行数据,并将其导入到数据库中
}
“`
上面的代码片段中,我们首先使用FileInputStream类来读取Excel文件,然后使用XSSFWorkbook类来代表工作簿。接着,我们使用getSheetAt()方法获取工作表,从而可以遍历该表格的所有行。对于每一行,我们可以使用POI的API来获取该行的所有单元格,并对其进行处理。在处理完成后,我们可以将数据导入到数据库中。
接下来,我们需要创建数据库连接,以便将数据导入到数据库中。使用JDBC来连接数据库,并创建SQL语句来插入数据。示例代码如下所示:
“`
//创建连接
String jdbcUrl = “jdbc:mysql://localhost/testdb”;
String username = “root”;
String password = “password”;
Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
//创建插入SQL
String insertSql = “INSERT INTO employees (id, name, age) VALUES (?, ?, ?)”;
//预编译SQL,提高效率
PreparedStatement statement = connection.prepareStatement(insertSql);
//为SQL语句中的每个参数设置值
statement.setInt(1, id);
statement.setString(2, name);
statement.setInt(3, age);
//执行SQL语句,将数据插入到数据库中
statement.executeUpdate();
“`
上面的代码片段中,我们首先使用JDBC连接到MySQL数据库,然后创建SQL语句来插入数据。为了提高效率,我们可以使用PreparedStatement类进行预编译,然后为SQL语句中的每个参数设置值,并使用executeUpdate()方法将数据插入到数据库中。
我们使用POI的API来将数据导入到数据库中。完整代码如下所示:
“`
FileInputStream inputStream = new FileInputStream(new File(“data.xlsx”));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0); //获取之一个工作表
String jdbcUrl = “jdbc:mysql://localhost/testdb”;
String username = “root”;
String password = “password”;
Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
String insertSql = “INSERT INTO employees (id, name, age) VALUES (?, ?, ?)”;
PreparedStatement statement = connection.prepareStatement(insertSql);
Iterator iterator = sheet.iterator();
while (iterator.hasNext()) {
Row currentRow = iterator.next();
int id = (int) currentRow.getCell(0).getNumericCellValue();
String name = currentRow.getCell(1).getStringCellValue();
int age = (int) currentRow.getCell(2).getNumericCellValue();
statement.setInt(1, id);
statement.setString(2, name);
statement.setInt(3, age);
statement.executeUpdate();
}
statement.close();
connection.close();
workbook.close();
inputStream.close();
“`
上述代码会按顺序执行以下操作:
1. 读取Excel数据;
2. 连接到MySQL数据库;
3. 创建插入SQL语句;
4. 遍历Excel表格的每一行;
5. 将每行数据插入到数据库中;
6. 关闭PreparedStatement、Connection、Workbook和FileInputStream。
相关问题拓展阅读:
java web 的工程中 导入excel到数据库时,怎么把任意的文件导入到数据库? 就是任意的文件的那段代码是什
错了,你是要批量导入吗?
需要下载poi包
首先要先把文件转变册谨成数据流InputStream,然后
try
{
HSSFWorkbook workbook = new HSSFWorkbook(is);
HSSFSheet sheet=workbook.getSheetAt(0);
}
catch(Exception e)
{
e.printStackTrace();
}
if(sheet==null)
{
close(streamIn);
return null;
}
int rows = sheet.getPhysicalNumberOfRows();
if(rows 0) {
if (!importFile.getFileName().endsWith(“.xls”)) {
return mapping.findForward(“Success”渗局运升);
}
try {
HSSFWorkbook workbook = new HSSFWorkbook(importFile
.getInputStream());
HSSFSheet sheet = workbook.getSheetAt(0);
poi导入excel
方法/步骤
一, ExcelUtils 工具类(也就是解析EXCEL文件,判断EXCEL的类型以及数据的类型)
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelUtils {
private final static String excel2023L = “.xls” ; // 2023-版本的excel
private final static String excel2023U = “.xlsx” ; // 2023 +版本的excel
/ **
*描述:获取IO流中的数据,组装成List 对象
* @param in,fileName
* @返回
* @throws IOException
* /
public List getBankListByExcel(InputStream in,String fileName) throws Exception {
列表 list = null ;
//创建的Excel工作薄
Workbook work = this .getWorkbook(in,fileName);
if (null == work){
抛出新的 异常(“创建Excel工作薄为空!” );
}
Sheet sheet = null ; //页数
行row = null ; //行数
Cell cell = null ; //列数
list = new ArrayList >();
//遍历的Excel中所有的片
for (int i = 0 ; i li = new ArrayList ();
for (int y = row.getFirstCellNum(); y import org.apache.poi.xssf.usermodel.XSSFCellStyle;
公共类 ExcelBean 实现 java.io.Serializable {
private String headTextName; //列头(标题)名
private String propertyName; //对应字段名
私有 整数列; //合并单元格数
私人 XSSFCellStyle cellStyle;
public ExcelBean(){
}
public ExcelBean(String headTextName,String propertyName){
这个.headTextName = headTextName;
这个.propertyName = propertyName;
}
public ExcelBean(String headTextName,String propertyName,Integer cols){
super ();
这个.headTextName = headTextName;
这个.propertyName = propertyName;
这个.cols = cols;
}
public String getHeadTextName(){
return headTextName;
}
public void setHeadTextName(String headTextName){
这个.headTextName = headTextName;
}
public String getPropertyName(){
return propertyName;
}
public void setPropertyName(String propertyName){
这个.propertyName = propertyName;
}
public Integer getCols(){
返回列 ;
}
公共无效 setCols(Integer cols){
这个.cols = cols;
}
上市 XSSFCellStyle getCellStyle(){
返回 cellStyle;
}
公共无效 setCellStyle(XSSFCellStyle cellStyle){
这个 .cellStyle = cellStyle;
}
}
people.java
import java.util.Date;
公共课 人
私有 整数id
private String userName;
私人 字符串密码;
私人 整数年龄;
私人 日期;
public Integer getId(){
返回 id
}
public void setId(Integer id){
这个.id = id;
}
public String getUserName(){
return userName;
}
public void setUserName(String userName){
这个.userName = userName == null ? null :userName.trim();
}
public String getPassword(){
返回 密码
}
public void setPassword(String password){
这个.password = password == null ? null :password.trim();
}
public Integer getAge(){
回归 年龄
}
public void setAge(Integer age){
这个.age = age
}
public Date getDate(){
退货 日期
}
public void setDate(Date date){
这个.date = date
}
}
web项目poi导入数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于web项目poi导入数据库,使用POI工具将Web项目数据导入数据库,java web 的工程中 导入excel到数据库时,怎么把任意的文件导入到数据库? 就是任意的文件的那段代码是什,poi导入excel的信息别忘了在本站进行查找喔。
来源地址:使用POI工具将Web项目数据导入数据库 (web项目poi导入数据库)
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^