1.具体实现及代码
使用EasyExcel来解析Excel文件并将内容插入数据库是一个很好的选择,因为EasyExcel具有高效、简单的特点。以下是一个使用EasyExcel和JDBC来完成这一任务的示例。
依赖
首先,确保你在项目中包含了EasyExcel和JDBC的相关依赖。以下是Maven依赖:
<dependencies><!-- EasyExcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.0</version> <!-- 请使用最新版本 --></dependency><!-- MySQL JDBC Driver --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version> <!-- 请根据你的MySQL版本调整 --></dependency>
</dependencies>
示例代码
以下示例代码展示了如何使用EasyExcel读取Excel文件并将数据插入到MySQL数据库中。
定义数据模型
首先,定义一个类来表示Excel中的数据。
java">
public class UserData {private String name;private Double age;// Getters and setterspublic String getName() {return name;}public void setName(String name) {this.name = name;}public Double getAge() {return age;}public void setAge(Double age) {this.age = age;}
}
读取Excel文件并插入数据库
接下来,编写代码来读取Excel文件并将数据插入到数据库中。
java">
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.read.builder.ExcelReaderBuilder;
import com.alibaba.excel.read.builder.ExcelReaderSheetBuilder;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;public class ExcelToDatabase {private static final String JDBC_URL = "jdbc:mysql://localhost:3306/your_database";private static final String USERNAME = "your_username";private static final String PASSWORD = "your_password";public static void main(String[] args) {String excelFilePath = "path/to/your/excel/file.xlsx";// 读取Excel文件List<UserData> dataList = readExcel(excelFilePath);// 插入数据库insertIntoDatabase(dataList);}private static List<UserData> readExcel(String filePath) {List<UserData> dataList = new ArrayList<>();ExcelReaderBuilder readerBuilder = EasyExcel.read(filePath, UserData.class, new AnalysisEventListener<UserData>() {@Overridepublic void invoke(UserData data, AnalysisContext context) {dataList.add(data);}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 解析完成后的操作}});ExcelReaderSheetBuilder sheetBuilder = readerBuilder.sheet();sheetBuilder.doRead();return dataList;}private static void insertIntoDatabase(List<UserData> dataList) {String sql = "INSERT INTO your_table (name, age) VALUES (?, ?)";try (Connection connection = DriverManager.getConnection(JDBC_URL, USERNAME, PASSWORD);PreparedStatement statement = connection.prepareStatement(sql)) {for (UserData data : dataList) {statement.setString(1, data.getName());statement.setDouble(2, data.getAge());statement.addBatch();}statement.executeBatch();} catch (SQLException e) {e.printStackTrace();}}
}
2.详细说明
1. 数据模型类`UserData`:这个类表示Excel中的每一行数据。根据你的Excel文件的结构,可以调整这个类。
2. 读取Excel文件:使用EasyExcel的`ExcelReaderBuilder`和`ExcelReaderSheetBuilder`来读取Excel文件。`AnalysisEventListener`用于逐行处理数据,并将数据存储到`dataList`中。
3. 插入数据库:使用JDBC连接到数据库,并使用`PreparedStatement`进行批量插入操作。通过`addBatch()`方法添加到批处理,最后执行`executeBatch()`。
注意事项
- 确保Excel文件路径和数据库连接信息正确。
- 根据实际Excel文件的结构和数据库表结构调整`UserData`类和SQL语句。
- 考虑异常处理和日志记录,以便在发生错误时能更容易地进行调试。
通过上述步骤,你可以使用EasyExcel高效地读取Excel文件并将其内容插入到数据库中。如果需要更多的定制和错误处理,可以根据具体需求进行扩展。