1
1.打开sql数据库
2
2.选择一个数据库,右击
3.选择任务---导入数据
4.进入向导,下一步
5.数据源下拉,选择平面文件源
6.选择csv文件,进行合理的筛选,一般系统选择的就可以,下一步
7.下一步
8.下一步
9.下一步
10.选中立即执行,下一步
11.单击“完成”
12.等待完成导入
package me.testimport 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'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)