从文件

时间:2015-10-01 06:09:47

标签: java mysql hibernate

我在文件中有200万条记录。我正试图将所有记录插入我的表格。我应该使用哪种方式非常复杂。 LOAD DATA INFILEhibernate begin transaction。 如何快速插入所有数据?

文件格式为txt,并以行分隔。需要只插入一行而其他行将生成自动。

抱歉英语不好。

2 个答案:

答案 0 :(得分:0)

LOAD DATA INFILE是mysql数据库用户的首选。但是,如果您想验证数据,那么您需要付出努力。您也可以使用Data Integration工具。 ex- talend是开源数据集成工具。通过点击它从文件加载到数据库等等。它对大型数据集很有用。您还可以验证和清理数据。

答案 1 :(得分:0)

我决定使用Load Data Infile,但这是另一个问题。当我完成处理时,我收到了这个警告:

WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL警告代码:1062,SQLState:23000 '为关键'PRIMARY'

我的查询

String query = " LOAD DATA LOCAL INFILE :file " +
                " IGNORE INTO TABLE Code" +
                " (code) " +
                " SET point = 0, created = NOW(), activated = 0; ";

当我从mysql检查我的记录时,CODE列上没有值

+-----------+-------+------+-----------+---------------+---------------------+
| code      | point | user | activated | activatedDate | created             |
+-----------+-------+------+-----------+---------------+---------------------+
|     0 | NULL |         0 | NULL          | 2015-10-01 16:35:02 |
|     0 | NULL |         0 | NULL          | 2015-10-01 16:35:02 |
+-----------+-------+------+-----------+---------------+---------------------+
2 rows in set (0.00 sec)