Excel 数据导入数据库的 Java 解决方案117


在现代数据管理中,将数据从电子表格(如 Excel)导入数据库是一项常见任务。Java 是一门功能强大的编程语言,提供了几种用于执行此任务的库和框架。

JDBC 和 ODBC

最常用的方法之一是使用 JDBC(Java 数据库连接)或 ODBC(开放数据库连接)API。这些 API 允许 Java 程序与各种数据库系统建立连接,包括 MySQL、PostgreSQL、Oracle 和 SQL Server。使用 JDBC 或 ODBC,您可以编写 SQL 查询并执行数据导入操作。import .*;
public class ExcelToDatabase {
public static void main(String[] args) {
// 连接到数据库
Connection con = ("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
// 准备 SQL 查询
String query = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)";
// 创建 PreparedStatement
PreparedStatement ps = (query);
// 打开 Excel 文件
FileInputStream fis = new FileInputStream("");
// 创建 XSSFWorkbook
XSSFWorkbook workbook = new XSSFWorkbook(fis);
// 遍历工作表
for (Row row : (0)) {
// 逐个单元格获取数据
String column1 = (0).getStringCellValue();
int column2 = (int) (1).getNumericCellValue();
double column3 = (2).getNumericCellValue();
// 设置 PreparedStatement 的参数
(1, column1);
(2, column2);
(3, column3);
// 执行查询
();
}
// 关闭资源
();
();
();
("数据已成功导入数据库");
}
}

Apache POI

Apache POI 是另一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel。POI 提供了一个直观的 API,可以读取和写入 Excel 工作簿和工作表的数据。import .*;
import ;
import ;
import .*;
public class ExcelToDatabaseWithPOI {
public static void main(String[] args) {
// 连接到数据库
Connection con = ("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
// 准备 SQL 查询
String query = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)";
// 创建 PreparedStatement
PreparedStatement ps = (query);
// 打开 Excel 文件
FileInputStream fis = new FileInputStream("");
// 创建 XSSFWorkbook
XSSFWorkbook workbook = new XSSFWorkbook(fis);
// 遍历工作表
for (Row row : (0)) {
// 逐个单元格获取数据
String column1 = (0).getStringCellValue();
int column2 = (int) (1).getNumericCellValue();
double column3 = (2).getNumericCellValue();
// 设置 PreparedStatement 的参数
(1, column1);
(2, column2);
(3, column3);
// 执行查询
();
}
// 关闭资源
();
();
();
("数据已成功导入数据库");
}
}

CSV 转换

另一种方法是将 Excel 数据导出为 CSV(逗号分隔值)文件,然后使用 Java 的 CSV 解析器或加载器库将其导入数据库。CSV 文件很容易处理,并且可以通过 JDBC 或专门的 CSV 导入库加载到数据库中。import ;
import ;
import .*;
public class ExcelToDatabaseViaCSV {
public static void main(String[] args) {
// 连接到数据库
Connection con = ("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
// 准备 SQL 查询
String query = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)";
// 创建 PreparedStatement
PreparedStatement ps = (query);
// 打开 CSV 文件
BufferedReader br = new BufferedReader(new FileReader(""));
// 逐行读取 CSV 文件
String line;
while ((line = ()) != null) {
// 分割 CSV 行
String[] values = (",");
// 设置 PreparedStatement 的参数
(1, values[0]);
(2, (values[1]));
(3, (values[2]));
// 执行查询
();
}
// 关闭资源
();
();
();
("数据已成功导入数据库");
}
}


Java 提供了多种导入 Excel 数据到数据库的解决方案。JDBC 和 ODBC 为直接与数据库交互提供了低级访问,而 Apache POI 提供了一个更高级别的 API。CSV 转换是一种更简单的选择,尤其适用于大量数据。

无论您选择哪种方法,关键是要确保您的代码安全可靠。使用 PreparedStatement 可以防止 SQL 注入攻击,而仔细处理资源可以避免内存泄漏和数据库锁定。

2024-10-27


上一篇:Java从Excel导入数据库

下一篇:使用 Java 将 Excel 数据导入数据库