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导入数据库
Python字符串查找与判断:从基础到高级的全方位指南
https://www.shuihudhg.cn/134118.html
C语言如何高效输出字符串“inc“?深度解析printf、puts及格式化输出
https://www.shuihudhg.cn/134117.html
PHP高效获取CSV文件行数:从小型文件到海量数据的最佳实践与性能优化
https://www.shuihudhg.cn/134116.html
C语言控制台图形输出:从入门到精通的ASCII艺术实践
https://www.shuihudhg.cn/134115.html
Python在Linux环境下的执行与自动化:从基础到高级实践
https://www.shuihudhg.cn/134114.html
热门文章
Java中数组赋值的全面指南
https://www.shuihudhg.cn/207.html
JavaScript 与 Java:二者有何异同?
https://www.shuihudhg.cn/6764.html
判断 Java 字符串中是否包含特定子字符串
https://www.shuihudhg.cn/3551.html
Java 字符串的切割:分而治之
https://www.shuihudhg.cn/6220.html
Java 输入代码:全面指南
https://www.shuihudhg.cn/1064.html