怎么将cvs格式的文件导入到mysql数据库中

怎么将cvs格式的文件导入到mysql数据库中,第1张

方法/步骤

1

1.打开sql数据库

2

2.选择一个数据库,右击

3.选择任务---导入数据

4.进入向导,下一步

5.数据源下拉,选择平面文件

6.选择csv文件,进行合理的筛选,一般系统选择的就可以,下一步

7.下一步

8.下一步

9.下一步

10.选中立即执行,下一步

11.单击“完成”

12.等待完成导入

package me.test

import java.io.File

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 org.skife.csv.CSVReader

import org.skife.csv.SimpleReader

/**

* 说明:作为示例,将CSV中的数据插入到数据库中。

* 注意:仅仅是功能性示例,没有try...catch...,请自行追加,并确认该如何commit和rollback。

*

*

* 数据库DDL:

*CREATE TABLE USER (ID INT , NAME VARCHAR(45), PRIMARY KEY(ID))

*

* CSV文件(C:/t.csv)中的数据内容

*1, 张三

*2, 李四

*3, 王五

*

* 参考第三方类库:

* MySQL Jdbc驱动包

*http://www.mysql.com/products/connector/

* Apache commons CSV ->Skife CSV ->csv-1.0.jar

*http://commons.apache.org/sandbox/csv/

*

* @author btpka3@163.com

*/

public class Csv2DB {

// 测试代码

@SuppressWarnings("unchecked")

public static void main(String args[]) throws ClassNotFoundException,

SQLException, IOException {

// 加载驱动类

Class.forName("org.gjt.mm.mysql.Driver")

// 创建数据库连接

String url = "jdbc:mysql://localhost:3306/test"

String userName = "root"

String password = "123456"

Connection conn = DriverManager.getConnection(url, userName, password)

String sql = "INSERT INTO USER(ID, NAME) VALUES(?,?)"

PreparedStatement stmt = conn.prepareStatement(sql)

conn.setAutoCommit(false)

CSVReader reader = new SimpleReader()

// CSV 文件路径

String csvFilePath = "C:/t.csv"

// CSV 文件中是否有一条头部记录(非数据,类似于列名)

boolean hasHeaderRec = false

List<String[]>recList = reader.parse(new File(csvFilePath))

for (int i = 0i <recList.size()i++) {

String[] rec = recList.get(i)

if (i == 0 &&hasHeaderRec) {

continue// 跳过头部记录

}

stmt.clearParameters()

stmt.setInt(1, Integer.valueOf(rec[0]))

stmt.setString(2, rec[1])

stmt.execute()

}

stmt.close()

conn.commit()

conn.close()

System.out.println("success")

}

}

数据太大,用数据库客户端软件直接导入非常卡,还是直接执行SQL吧。

1、指定文件路径。

2、字段之间以逗号分隔,数据行之间以\r\n分隔(我这里文件是以\n分隔的)。

3、字符串以半角双引号包围,字符串本身的双引号用两个双引号表示。

Sql代码

复制代码

代码如下:

load

data

infile

'D:\\top-1m.csv'

into

table

`site`

fields

terminated

by

','

optionally

enclosed

by

'"'

escaped

by

'"'

lines

terminated

by

'\n'

顺带也备份个导出吧。

Sql代码

复制代码

代码如下:

select

*

from

`site`

into

outfile

'D:\\top-1m.csv'

fields

terminated

by

','

optionally

enclosed

by

'"'

escaped

by

'"'

lines

terminated

by

'\n'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8740725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存