重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Java中将txt文件导入到mysql基本的思路,操作流获取到文件具体信息,然后将信息拼接成mysql插入到数据库中。
创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为临朐企业提供专业的成都网站设计、成都网站建设,临朐网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
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.Constants; import com.utils.UUIDUtil;
5.public static final String TXT_FILE_PATH =“D://testUser.txt。
public static final String openFileStyle =“r”。
例如下面的命令把c:\1.txt文件中的内容插入到数据库test的表t中:
load
data
infile
'c:\1.txt'
into
table
test.t;
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万行一个单位拆成小文件,以后缀编号区分,编写脚本进行自动导入。如果发生的错误,只需要从小文件中定位问题即可。然后重启导入脚本。
首先我们使用mysql提供的命令行界面来导入数据库,确保自己的电脑中安装了mysql数据库,我们可以通过命令行来确认是否安装了mysql数据库,当然,第一步是打开mysql的数据库服务,我们使用命令行来打开:如下图所示:
启动mysql后,我们找到需要用到的脚本文件,也就是数据库文件,当然,我们首先得建立一个数据库,这样才可以导入脚本,如下图所示:
我们在将脚本拷到本地磁盘的根目录,这样方便进入找到脚本,这里以d盘来说明,使用test.sql:接着我们来到命令行,使用source
d:/test.sql;来导入数据库,先进入mysql,如下图所示:
首先要在数据库中建立好数据库,然后导入脚本,所以先建立一个数据库哦,不要脚本是不知道你要往哪个数据库中导入脚本的,如下图所示:
然后就可以输入导入.sql文件命令:
mysql
use
数据库名;
mysql
source
d:/test.sql;
如下图所示:
6
看到上面的画面,说明mysql数据库已经导入成功了哦!
是不是很简单呢?现在来介绍第二种方法,使用mysql图形工具导入数据库,我们还是使用test.sql脚本来说明:
1: 登录数据库: 默认用户名: root 默认密码: root
2: 显示数据库:
3: 创建一个practice数据库,作为演示用:
4: 导入本地数据
说明:
load data: 读取数据
local: 默认是使用服务器文件 , 如果想用电脑里的本地文件
replace 如果有主键约束 , 在遇到重名的 , replace进行替换 , 或者用ignore不替换 , 如果没约束 , 可以不写
fields terminated by',': 指定分隔符 , 默认是'/t'
1、在MySQL数据库中创建一个用户表user,包含三个最基础字段:主键id,姓名name和年龄age。
CREATE TABLE USER(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL,
age tinyint UNSIGNED,
PRIMARY KEY (id)
)ENGINE=InnoDB CHARSET=utf8;
2、制作一个user.txt文件,每一条内容用Tab键进行分隔不同的属性,多条换行。如果该字段为NULL,则用/N表示。 里面包含内容如下:
雷雪松 31
raykaeso 25
leixuesong 45
barbie /N
3、使用MySQL命令导入txt文本,指定本地路径和对应表中的字段。
LOAD DATA LOCAL INFILE "H:/user.txt" INTO TABLE USER(name,age);