java读取cvs文件并导入数据库

yizhihongxing

敬爱的读者,首先感谢您对 Java 编程的热爱。关于如何从CSV文件中读取数据并将其导入数据库,本文将提供一个完整的攻略,详细介绍每个步骤。在本文中,我们将使用Java编写代码来实现该功能。

1. 准备CSV文件

首先,需要准备好包含数据的 CSV 文件。CSV 文件是一种纯文本格式,用于存储和交换以逗号、制表符、分号等分隔符隔开的数据。你可以使用 Microsoft Excel 或 Google Sheets 等电子表格应用程序创建一个CSV文件。

请确保 CSV 文件的列与数据库表的列名一致,并且每一行的数据类型与数据库表列的数据类型相匹配。否则,你需要在代码中进行数据类型转换。

2. 导入依赖

接下来,需要将以下依赖项导入到你的代码中,以便从 CSV 文件读取和解析数据:

<!-- CSV 解析器 -->
<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.5.2</version>
</dependency>

<!-- JDBC 驱动程序 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>

3. 代码实现

3.1 连接数据库

在开始处理CSV文件之前,我们需要先连接到数据库。请在代码中添加以下代码:

String url = "jdbc:mysql://localhost/mydatabase";
String username = "root";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);

请将mydatabase替换为你要连接的数据库名称,并将rootpassword替换为你的数据库用户名和密码。你需要替换的部分用你真实的用户名和密码。

3.2 读取CSV文件

接下来,我们需要读取 CSV 文件数据。请在代码中添加以下代码:

CSVReader reader = new CSVReader(new FileReader("data.csv"));
List<String[]> data = reader.readAll();

请将"data.csv"替换为你创建的CSV文件的名称或路径。解析完数据后将其存储在 List<String[]>类型的对象中。

3.3 插入数据到数据库

接下来,我们需要将数据插入到数据库中。请在代码中添加以下代码:

PreparedStatement ps = null;
String query = "INSERT INTO table_name (column1, column2, ...) VALUES (?, ?, ...)";
for (String[] row : data) {
    ps = connection.prepareStatement(query);
    ps.setString(1, row[0]);
    ps.setInt(2, Integer.parseInt(row[1])); // 如果你的数据类型不是字符串,请进行相应的数据类型转换
    // 将其他列进行数据类型转换后,添加到 PreparedStatement 中
    ps.executeUpdate();
}

请将 table_name 替换为你要插入数据的表名。在 PreparedStatement 中指定列名和值。请注意,需要将CSV文件中的字符串转换为适当的数据类型(如整数,浮点数,日期等)。

4. 示例

接下来,我们将展示两个使用此攻略导入 CSV 数据的示例。

示例1:将 CSV 数据插入到MySQL数据库中

import java.io.FileReader;
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.CsvValidationException;

public class CsvToDatabase {
  public static void main(String[] args) throws ClassNotFoundException, SQLException, CsvValidationException {
    String url = "jdbc:mysql://localhost/mydatabase";
    String username = "root";
    String password = "password";
    Connection connection = DriverManager.getConnection(url, username, password);
    CSVReader reader = new CSVReader(new FileReader("data.csv"));
    List<String[]> data = reader.readAll();
    PreparedStatement ps = null;
    String query = "INSERT INTO employee (name, age, salary) VALUES (?, ?, ?)";
    for (String[] row : data) {
      ps = connection.prepareStatement(query);
      ps.setString(1, row[0]);
      ps.setInt(2, Integer.parseInt(row[1]));
      ps.setDouble(3, Double.parseDouble(row[2]));
      ps.executeUpdate();
    }
    System.out.println("CSV data inserted into the database successfully"); // 提示插入成功
    connection.close();
  }
}

示例2:将 CSV 数据插入到PostgreSQL数据库中

import java.io.FileReader;
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.CsvValidationException;

public class CsvToDatabase {
  public static void main(String[] args) throws ClassNotFoundException, SQLException, CsvValidationException {
    String url = "jdbc:postgresql://localhost/mydatabase";
    String username = "postgres";
    String password = "password";
    Connection connection = DriverManager.getConnection(url, username, password);
    CSVReader reader = new CSVReader(new FileReader("data.csv"));
    List<String[]> data = reader.readAll();
    PreparedStatement ps = null;
    String query = "INSERT INTO employee (name, age, salary) VALUES (?, ?, ?)";
    for (String[] row : data) {
      ps = connection.prepareStatement(query);
      ps.setString(1, row[0]);
      ps.setInt(2, Integer.parseInt(row[1]));
      ps.setDouble(3, Double.parseDouble(row[2]));
      ps.executeUpdate();
    }
    System.out.println("CSV data inserted into the database successfully"); // 提示插入成功
    connection.close();
  }
}

这是完整的代码示例。你可以根据自己的需求进行更改和修改。

我们希望以上攻略能够帮助你成功地将 CSV 数据导入到数据库中。如果你遇到任何问题,请随时在评论中发表评论回复。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java读取cvs文件并导入数据库 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 详解Springboot Oauth2 Server搭建Oauth2认证服务

    详解SpringBoot Oauth2 Server搭建Oauth2认证服务 1. 概述 OAuth,全称是“开放授权”,是一种用于授权的开放标准。在Web应用中,OAuth用于授权用户第三方应用访问资源的操作,比如在不需要输入用户名和密码的情况下授权第三方应用获取用户的个人信息。OAuth提供了一个安全的、开放的方式实现对用户的授权。 SpringBoot…

    Java 2023年5月20日
    00
  • 用JAVA实现杨辉三角实例

    首先我们来详细讲解用JAVA实现杨辉三角的完整攻略,步骤如下: 1. 确定问题及解题思路 杨辉三角是一个数字三角形,它的每一行都是由前一行相邻两个元素相加而成。第一行只有一个数字1,接下来的每一行数字都是通过计算上一行相邻两个数字之和得到的。比如,第三行的数字是1 2 1,其中2=1+1。 我们可以通过二维数组来存储杨辉三角,并使用循环迭代计算每一行的数据。…

    Java 2023年5月19日
    00
  • 深入解析Java中ThreadLocal线程类的作用和用法

    深入解析 Java 中 ThreadLocal 线程类的作用和用法 什么是 ThreadLocal Java 中的 ThreadLocal 是一个线程级别的变量,它是一个简单的线程安全机制,可以用于解决多线程中的并发问题。通俗地说,ThreadLocal 就是一个存放数据的盒子,每个线程有一个专属的盒子,不同线程之间互不干扰。 ThreadLocal 的使用…

    Java 2023年5月20日
    00
  • java 字符串相减(很简单的一个方法)

    Java中的字符串是不可修改的,也就是说,字符串变量一旦被创建,它的值就不能改变。因此,不能像数字那样直接相减。但是,可以使用一种简单的方法来实现字符串相减的效果。 具体来说,可以将一个字符串中的另一个字符串删除,实现字符串相减的效果。下面给出两个示例说明: 示例一: String str1 = "hello world"; String…

    Java 2023年5月26日
    00
  • java获取版本号及字节码编译版本方法示例

    Java获取版本号及字节码编译版本方法示例 当我们使用Java开发时,需要知道Java的版本号以及字节码的编译版本。这对于我们在编程过程中的调试与优化非常有帮助。下面就来讲解一下Java获取版本号及字节码编译版本的方法,并且提供两个示例。 获取Java版本号 在Java中,我们可以使用System.getProperty(String key)方法获取Jav…

    Java 2023年5月27日
    00
  • SpringBoot激活profiles的几种方式

    下面详细讲解SpringBoot激活profiles的几种方式。 激活profile的几种方式 1. 命令行参数 在启动SpringBoot应用时,可以使用命令行参数-Dspring.profiles.active来激活profile。 例如,输入以下命令可以激活名为”dev”的profile: java -jar myapp.jar -Dspring.pr…

    Java 2023年5月19日
    00
  • 一文解析Apache Avro数据

    一文解析Apache Avro数据 什么是Apache Avro? Apache Avro是一种数据序列化系统,它致力于解决不同语言之间数据交流的问题,通过提供透明、紧凑和高效的二进制数据格式,使得数据的传输和存储更加容易。它支持基于Web服务的远程过程调用(RPC)和大规模数据存储、处理系统的数据交换。 Avro基本概念 Schema Apache Avr…

    Java 2023年5月20日
    00
  • SpringBoot配置和切换Tomcat流程详解

    关于SpringBoot配置和切换Tomcat的流程,我来为您详细讲解。 1. SpringBoot 配置 Tomcat 的默认端口 SpringBoot默认使用的Tomcat端口是8080,可以通过在配置文件中配置server.port来修改端口号,例如设置为8090端口,只需要按照以下步骤操作: 打开配置文件application.properties或…

    Java 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部