Java读取本地CSV文件,并保存到数据库

package com.example.excel;

import com.csvreader.CsvReader;
import com.example.bean.CsvData;
import com.google.common.collect.Lists;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Value;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

public class CoarseRegulation {

    // 定义连接数据库所需要的信息
    private static final String DB_URL = "jdbc:mysql://localhost:3306/shuanghuan";
    private static final String USER = "root";
    private static final String PASS = "1234";



    public static void main(String[] args){

        CsvData csvData =null;
        CsvReader r;
        // 获取 Excel 文件
        File excelFile = new File("E:/OneDriver/OneDrive/桌面/2023-09-011.csv");
        try {

// 获取连接数据库的对象
            Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);

            r = new CsvReader("E:/OneDriver/OneDrive/桌面/双环erp/2023-09-011.csv",',', Charset.forName("GBK"));

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            sdf.setLenient(false); // 设置严格验证日期

            //读取表头
            boolean b = r.readHeaders();
            while(r.readRecord()){
                csvData = new CsvData();
                //注意,此处的数字是取得第几列,从0开始数
                csvData.setId(Integer.parseInt(r.get(1)));
                csvData.setBeforeUpdate(r.get(2));
                csvData.setLateUpdate(r.get(3));
                csvData.setResult(r.get(4));
                csvData.setUpdateTime(sdf.parse(r.get(5)));

                PreparedStatement pstmt = conn.prepareStatement(
                        "INSERT INTO coarse_regulation (id, beforeUpdate, laterUpdate, result, Update_time)" +
                                " VALUES (?, ?, ?, ?, ?)");
                pstmt.setInt(1, Integer.parseInt(r.get(1)));
                pstmt.setString(2, r.get(2));
                pstmt.setString(3, r.get(3));
                pstmt.setString(4, r.get(4));
                pstmt.setTimestamp(5, new Timestamp(sdf.parse(r.get(5)).getTime()));
                pstmt.executeUpdate();
            }
            r.close();
        } catch (IOException | ParseException | SQLException e) {
            e.printStackTrace();
        }

    }
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java读取和解析CSV文件,然后保存数据库的步骤如下: 1. 使用Java文件I/O API打开CSV文件。 2. 使用JavaCSV解析库(如OpenCSV或Apache Commons CSV)解析CSV文件。 3. 逐行读取CSV文件中的数据,并将其转换为Java对象(如数组、列表或自定义对象)。 4. 使用Java数据库API(如JDBC或Hibernate)连接到数据库并创建一个表来存储CSV数据。 5. 将CSV数据插入到数据库表中。 6. 最后,关闭CSV文件数据库连接。 以下是一个示例代码,演示如何使用OpenCSV读取并解析CSV文件,然后将数据保存到MySQL数据库中: ``` import java.io.FileReader; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import com.opencsv.CSVReader; import com.opencsv.exceptions.CsvException; public class CSVToDatabaseExample { public static void main(String[] args) throws IOException, CsvException, SQLException { // 1. 打开CSV文件 CSVReader reader = new CSVReader(new FileReader("path/to/csv/file.csv")); // 2. 解析CSV文件 List<String[]> csvData = reader.readAll(); // 3. 处理CSV数据 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); String sql = "INSERT INTO mytable (column1, column2, column3) VALUES (?, ?, ?)"; PreparedStatement statement = conn.prepareStatement(sql); for (String[] row : csvData) { statement.setString(1, row[0]); statement.setString(2, row[1]); statement.setString(3, row[2]); statement.executeUpdate(); } // 4. 关闭CSV文件数据库连接 statement.close(); conn.close(); reader.close(); } } ``` 在此示例中,我们使用OpenCSV库的CSVReader类打开CSV文件读取所有行。然后,我们遍历每一行,并将其插入到MySQL数据库的“mytable”表中。最后,我们关闭CSV文件数据库连接。请注意,在此示例中,我们使用了JDBC API来连接到MySQL数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值