【发布时间】:2016-12-18 15:39:58
【问题描述】:
假设我们有 2 个实体:
- Person 实体 - 有 2 个属性 person_id(手动输入)和 firstname
- 地址实体 - 有 2 个属性 address_id(自动递增)和 streetname
每个人都有一个地址(OneToOne 关系)。所以地址实体将有一个外键(person_id)指向其关联的人。 你会建议如何解决这个问题?
到目前为止,我只找到了一种在没有关系管理的情况下将单个实体导入 mysql 的方法:
LOAD DATA INFILE 'c:/tmp/file.csv'
INTO TABLE person
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
【问题讨论】:
-
我假设人有一个自动递增的键,它需要匹配地址表中的 user_id 之类的东西?
-
您好 FrankerZ,感谢您抽出宝贵时间。我非常抱歉没有以简洁的方式表达自己。 Person 实体的 pk (id) 将手动给出,但 Address (id) 的 pk 将自动递增。正如您所预料的,user_id 将是 Address 表中的 fk。现在我已经编写了一个 Java 方法来读取 csv 文件以创建对象,然后将它们持久化到数据库中。我想知道在 mysql 本身的功能中是否有更有效的方法。
-
没问题。这就是 cmets 的作用 =)
-
我已经用另一个解决方案更新了我的答案。如果您对回复感到满意,请将答案标记为已接受,否则请告诉我,我可以提供进一步帮助。
-
刚刚试过你的建议,确实解决了我的问题!这是要走的路。再次感谢您的时间和精力。干杯 =)
标签: java mysql hibernate csv import