Java读取本地文件/文件夹下的内容导入数据库

本文介绍如何使用Java编程语言读取本地文件夹中的数据,并将这些内容有效导入到数据库中,涉及文件操作及数据库交互技术。
摘要由CSDN通过智能技术生成

Java读取本地文件夹下的内容导入数据库
 

public void addLocalFileToDatabase() throws IOException {
    String basePath = "D:\\Desktop\\htmll";    //本地文件地址
    File dir = new File(basePath);

    List<File> allFileList = new ArrayList<>();

    // 判断文件夹是否存在
    if (!dir.exists()) {
        System.out.println("目录不存在");
        return;
    }

    getAllFile(dir, allFileList);  //读取本地文件内容,封装fileList

    //遍历文件list根据业务逻辑存储数据到数据库

    for (File file : allFileList) {
        //  获取 文件内容 及  文件名
        String content = readFile(file);
        System.out.println(content);
        System.out.println(file.getName());

        //业务处理,存储数据
        Schoolschool= new School();
        School.setContent(content);
        School.setTitle(file.getName());
        School.setSchoolId(1);
        School.setYear(2022);
        schoolServiceImp.save(school);
    }
    System.out.println("该文件夹下共有" + allFile
以下是Java读取多个CSV文件并将其导入到达梦数据库的示例代码: ```java import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class CsvToDatabase { public static void main(String[] args) { String jdbcUrl = "jdbc:dm://localhost:5236"; String username = "username"; String password = "password"; String driverName = "dm.jdbc.driver.DmDriver"; String csvFolderPath = "path/to/csv/folder"; String tableName = "table_name"; Connection conn = null; PreparedStatement pstmt = null; try { Class.forName(driverName); conn = DriverManager.getConnection(jdbcUrl, username, password); File folder = new File(csvFolderPath); File[] csvFiles = folder.listFiles((dir, name) -> name.endsWith(".csv")); for (File csvFile : csvFiles) { BufferedReader br = new BufferedReader(new FileReader(csvFile)); String line; String[] headers = null; String[] values; int count = 0; while ((line = br.readLine()) != null) { if (count == 0) { headers = line.split(","); } else { values = line.split(","); String sql = "INSERT INTO " + tableName + " ("; for (int i = 0; i < headers.length; i++) { sql += headers[i]; if (i != headers.length - 1) { sql += ","; } } sql += ") VALUES ("; for (int i = 0; i < values.length; i++) { sql += "?"; if (i != values.length - 1) { sql += ","; } } sql += ")"; pstmt = conn.prepareStatement(sql); for (int i = 0; i < values.length; i++) { pstmt.setString(i + 1, values[i]); } pstmt.executeUpdate(); } count++; } br.close(); } System.out.println("CSV files imported successfully."); } catch (Exception e) { e.printStackTrace(); } finally { try { if (pstmt != null) { pstmt.close(); } if (conn != null) { conn.close(); } } catch (Exception e) { e.printStackTrace(); } } } } ``` 请注意,您需要将代码中的以下变量替换为您自己的值: - jdbcUrl:到达梦数据库的JDBC URL。 - username:数据库用户名。 - password:数据库密码。 - driverName:JDBC驱动程序的完整类名。 - csvFolderPath:包含CSV文件文件夹的路径。 - tableName:要将数据插入的表的名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值