用java如何将txt文件导入mysql?

用java如何将txt文件导入mysql?,第1张

Java中将txt文件导入到mysql基本的思路, *** 作流获取到文件具体信息,然后将信息拼接成mysql插入到数据库中。

1.先读取txt文件的内容,文件内容可以按照一定的规律进行排列,这样程序读取就方便。

2.java.io.IOExceptionimportjava.io.RandomAccessFileimportjava.io.UnsupportedEncodingException。

3.import java.text.SimpleDateFormat,import java.util.Date, import java.util.regex.Matcher,

import java.util.regex.Pattern

4.import com.config.Constantsimport com.utils.UUIDUtil

5.public static final String TXT_FILE_PATH =“D://testUser.txt。

public static final String openFileStyle =“r”。

方法如下,举例说明:

1、创建测试表,即为要被导入的表:

1

2

3

4

5

6

7

create table person(

id int not null auto_increment,

name varchar(40) not null,

city varchar(20),

salary int,

primary key(id)

)engine=innodb charset=gb2312

2、接着写一个用于导入的文本文件:c:\data.txt。

张三 31 北京 3000

李四 25 杭州 4000

王五 45 \N 4500

小明 29 天津 \N

每一项之间用Tab键进行分隔,如果该字段为NULL,则用\N表示。

3、导入数据

输入命令,进行导入。

load data local infile “c:/data.txt”

into table person(name,age,city,salary)

导入数据截图如下:

其中local表示本地。执行后,可以看到NULL数据也被正确地导入。

mysql在linux命令行下导入txt文件

mysql导入txt的命令如下

但如果在终端中通过

登陆的话,输入以上命令会报错:

ERROR 1148 (42000): The used command is not allowed with this MySQL version

大家不要被报错的表面翻译给误导了,这其实是个权限问题,解决方法如下

在通过终端输入时,加上一个参数--local-infile = 1 详细解释请自行百度。

用下面语句登陆后再进行导入,就成功了

mysqlimport方法导入文件:

其实无论是load data还是mysqlimport,导入是事务,如果不是则设置引擎支持事务。

如何解决大文件导入?当有十几甚至几十G文件需要导入时,因为导入中间可能会失败,如果一次性导入,导入失败会导致回滚,代价太高,从几十G文件中寻找问题也是很头疼的事情。因此,需要先将大文件拆成小文件,比如split命令,按2万行一个单位拆成小文件,以后缀编号区分,编写脚本进行自动导入。如果发生的错误,只需要从小文件中定位问题即可。然后重启导入脚本。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存