首页
学习
活动
专区
圈层
工具
发布

java将csv导入mysql数据库

基础概念

CSV(Comma-Separated Values)是一种常见的数据交换格式,每一行代表一条记录,每个字段由逗号分隔。MySQL是一种关系型数据库管理系统,用于存储和管理数据。

相关优势

  1. 简单易用:CSV格式简单,易于阅读和编辑。
  2. 广泛支持:几乎所有的数据处理软件都支持CSV格式。
  3. 高效导入:通过批量导入,可以快速将大量数据导入MySQL数据库。

类型

CSV文件可以是UTF-8编码或其他编码格式,通常包含标题行和数据行。

应用场景

CSV文件常用于数据备份、数据交换和数据分析等场景。

导入MySQL的步骤

  1. 准备CSV文件:确保CSV文件的格式正确,字段顺序与数据库表结构一致。
  2. 创建数据库表:在MySQL中创建与CSV文件字段对应的表。
  3. 导入数据:使用Java代码将CSV文件导入MySQL数据库。

示例代码

以下是一个简单的Java示例,展示如何将CSV文件导入MySQL数据库:

代码语言:txt
复制
import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class CSVToMySQL {
    public static void main(String[] args) {
        String csvFile = "path/to/your/file.csv";
        String jdbcUrl = "jdbc:mysql://localhost:3306/your_database";
        String username = "your_username";
        String password = "your_password";
        String tableName = "your_table";

        try (BufferedReader br = new BufferedReader(new FileReader(csvFile));
             Connection conn = DriverManager.getConnection(jdbcUrl, username, password)) {

            String line;
            while ((line = br.readLine()) != null) {
                String[] data = line.split(",");
                String sql = "INSERT INTO " + tableName + " VALUES (?, ?, ?)";
                try (PreparedStatement ps = conn.prepareStatement(sql)) {
                    ps.setString(1, data[0]);
                    ps.setString(2, data[1]);
                    ps.setString(3, data[2]);
                    ps.executeUpdate();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

参考链接

常见问题及解决方法

  1. 编码问题:如果CSV文件包含特殊字符,确保文件编码与Java代码中的编码一致。
  2. 字段匹配问题:确保CSV文件的字段顺序与数据库表的字段顺序一致。
  3. SQL注入问题:使用PreparedStatement可以有效防止SQL注入攻击。

总结

通过上述步骤和示例代码,你可以将CSV文件导入MySQL数据库。确保文件格式正确、字段匹配,并处理好编码和安全性问题,可以顺利完成数据导入。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MySQL导入csv、excel或者sql文件

    1.导入csv文件 使用如下命令: mysql> load data infile "your csv file path" into table [tablename] fields terminated...by ',' 上面的csv文件以’,’逗号作为分割符,需要用双引号或者单引号括起来。...还有一点需要注意,csv文件或者文本文件的路径要使用绝对路径,否则mysql会默认从数据库存储的目录寻找,找不到就会报如下错误: ERROR 13 (HY000) at line 1: Can't get...直接使用下面的命令: mysql> load data infile "your excel file path" into table [tablename] 注意上面导入文件时,都需要提前建立好与文件内各个段对应好的数据表...---- 参考文献 [1]关于将EXCEL文件导入到MYSQL数据库的一些方法 [2]linux命令行下导出导入.sql文件 [3]stackoverflow

    10.2K40

    Java调用SqlLoader将大文本导入数据库

    Java调用SqlLoader将大文本导入数据库 业务场景:将一千万条数据,大约500M的文本文档的数据导入到数据库   分析:通过Java的IO流解析txt文本文档,拼接动态sql实现insert入库...第三:这种操作可扩展性不强,每次只能针对指定的表,指定的列操作 针对以上缺点,现在通过接口调用数据库系统命令实现,通过可视化界面,选择要导入的表,要导入那些字段,上传指定的txt文本,会自动生成对应的模板文件...,实现大批量数据高效率的导入到数据库,通过可配置化即可实现,相对前一种思路扩展性较强, 具体接口如下 1 package com.sun.sqlloader.api; 2 /** 3 * SqlLoader...31 * @param pwd 数据库的密码 32 * @param database 连接数据库的地址 33 * @param fileRoute 文件路径 34...java.io.OutputStreamWriter; 8 9 /** 10 * 循环将数据按照指定的格式写入文本文件 11 * @ClassName: OperaFile 12 *

    1.8K30

    用Python一键批量将任意结构的CSV文件导入 SQLite 数据库。

    用Python一键批量将任意结构的CSV文件导入MySQL数据库。” 本文是上篇的姊妹篇,只不过是把数据库换成了 Python 自带的SQLite3。...上一篇介绍的是一键批量导入 MySQL 数据库,这一篇介绍的是一键批量导入 SQLite3 数据库,两者代码 90% 相同。所以本文重点介绍不同之处。 先看一下程序运行效果: ?...以上就是一键批量将任意结构的CSV文件导入SQLite数据库与MySQL数据库代码的主要不同点。如果您还没有看过上一篇文章,强烈建议去看一下!上篇文章代码实现思路方面讲解的更详细:“ 收藏!...用Python一键批量将任意结构的CSV文件导入MySQL数据库。”...我们可以将上文自动导入生成的数据库 csv.db 添加到 SQLiteStudio 中,可以很方便的查看到数据库中有哪些表,以及表结构和数据。见下图: ?

    6.7K10

    使用python将csv文件快速转存到mysql

    因为一些工作需要,我们经常会做一些数据持久化的事情,例如将临时数据存到文件里,又或者是存到数据库里。 对于一个规范的表文件(例如csv),我们如何才能快速将数据存到mysql里面呢?...正文 对于一个正式的csv文件,我们将它打开,看到的数据是这样的: ? 这个数据很简单,只有三个列,现在我们要使用python将它快速转存到mysql。...我们这边是将csv批量写到数据库,需要设置local_infile参数,如果不添加会报错。...支持csv数据的导入,以下是sql的语法: LOAD DATA INFILE '文件名' REPLACE INTO TABLE 表名 CHARACTER SET UTF8 FIELDS TERMINATED...con.rollback() finally: cur.close() con.close() 代码也可以去github: https://github.com/johnturingwu/csv_to_mysql

    8.9K10

    MySQL LOAD DATA INFILE—从文件(csv、txt)批量导入数据

    后改为"load data infile"大概,10万条数据平均1秒~1.5秒,实际的代码示例如下: query = "LOAD DATA INFILE '/var/lib/mysql-files/es.csv...加上“Concurrency ”可以在读的同时支持写入,不过速度会稍微下降一点,笔者测试环境影响不大 (4)IGNORE 1 LINES (跳过第一行) 笔者通过python pandas to_csv...()导出的csv是带标题的,如下: 不需要标题导入到数据库,就跳过嘛 (5)@dummy ,通过占位符,跳过不需要的数据 导入到表的column顺序必须和文件保持一致,通过@dummy可以跳过不需要的column...区别在于:一个是插入一条,创建一个索引;一个是全部导入完了后,再一次创建所有索引。...引用:  如何导入5亿条数据到mysql — https://derwiki.tumblr.com/post/24490758395/loading-half-a-billion-rows-into-mysql

    11.4K11

    短短几行代码将数据保存CSV和MySQL

    分享写入csv文件和写入mysql的方法,编码工作我一向追求代码的简单性。...}, {"name":"赵六","age":21,"city":"深圳"}, {"name":"孙七","age":22,"city":"武汉"} ] 用pandas将数据转换成行列...,会有行号(如下图),这点在保存数据库mysql的时候体现尤其明显,不注意的话可能会出错 ?...3、engine_config为数据库连接配置信息,按照我上面的方式构造就行了打印出来如下图 mysql+pymysql://root:123456789@127.0.0.1:3306/centos_test...,这样刚好df的3个列和数据库的3个字段一一对应,正常保存,如果不设置为false的话,数据相当于4列,跟MySQL 3列对不上号,会报错 这里提个小问题,比如我们想在遍历的时候来一条数据,保存一条,而不是整体生成

    2.9K20

    如何把.csv文件导入到mysql中以及如何使用mysql 脚本中的load data快速导入

    1, 其中csv文件就相当于excel中的另一种保存形式,其中在插入的时候是和数据库中的表相对应的,这里面的colunm 就相当于数据库中的一列,对应csv表中的一列。...2,在我的数据库表中分别创建了两列A ,B属性为varchar。 3,在这里面中,表使用无事务的myISAM 和支持事务innodb都可以,但是MyISAM速度较快。... by '\\'' lines terminated by '\\r\\n'  (`A`,`B`) "; 这句话是MySql的脚本在java中的使用,这个插入速度特别快,JDBC自动解析该段代码进行数据的读出...,并且插入到数据库。...");              Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/girlandboy

    9.6K40

    将数据文件(csv,Tsv)导入Hbase的三种方法

    将各种类型的数据库或者文件导入到HBase,常见有三种方法: (1)使用HBase的API中的Put方法 (2)使用HBase 的bulk load工具 (3)使用定制的MapReduce...通过单客户端导入mySQL数据 从一个单独的客户端获取数据,然后通过HBase的API中Put方法将数据存入HBase中。这种方式适合处理数据不是太多的情况。...实施: 在HBase中创建表 写一个java程序,mySQL中的数据导入Hbase,并将其打包为JAR. 1.使用Java创建一个connectHBase() 方法来连接到指定的HBase表...2.使用Java创建一个 connectDB() 方法来 MySQL。 3.通过脚本执行JAR文件 4.验证导入的数据 在HBase中创建了目标表用于插入数据。...提炼 为统一实现java的封装,采用 bulk load工具来导入数据 (1)首先将数据库的文件导出为CSV文件,也可以在保存的时候保存为CSV文件,产生CSV文件 (2)准备工作:从数据源中提取数据,

    5.1K10

    MySQL 数据库的导入导出

    目录 ---- 目录 导出数据库 导出数据和表结构 只导出表结构 导入数据库 首先建空数据库 导入数据库 ---- 导出数据库: 导出数据和表结构: 格式: mysqldump -u用户名 -...p密码 数据库名 > 数据库名.sql 举例: /usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql 敲回车后会提示输入密码 只导出表结构...注:/usr/local/mysql/bin/ —> mysql的data目录 导入数据库 首先建空数据库 mysql>create database abc; 导入数据库 方法一: 选择数据库...mysql>use abc; 设置数据库编码 mysql>set names utf8; 导入数据(注意sql文件的路径) mysql>source /home/abc/abc.sql;...方法二: mysql -u用户名 -p密码 数据库名 数据库名.sql mysql -uabc_f -p abc < abc.sql

    21.6K20
    领券