【发布时间】:2011-03-25 23:54:44
【问题描述】:
对于我们的 grails 应用程序,我编写了一个方法,可以让您上传一个包含联系人的 CSV 文件,它会解析文件并根据数据创建联系人。我使用了自己的测试文件(硬编码哪些字段意味着什么),效果很好。
但是我当然不能像这样硬编码字段引用,所以我的下一步是向用户显示一个屏幕,让他们将文件中的列映射到我们的数据库字段(列 A 和 B 保存名称, C 列包含电子邮件等)。
我的问题:临时存储我在第一部分中提取的数据的最佳方法是什么,以便可以在第二部分结束时使用?域类似乎是合乎逻辑的选择,但我还没有找到一种优雅的方式来做到这一点。 Hibernate 似乎不喜欢 2D 字符串数组,并且以 OO 方式实现它需要几个域类(ImportedCsv、CsvRow)。对于这样一个小而临时的流程,有几个顶级域类是可以接受的吗?
我是一个 grails 新手,所以我不确定什么是 hackish,什么是优雅的。你会怎么做?
【问题讨论】:
-
如果您不需要保留地图信息,为什么要将其存储在任何地方?将参数保存在映射中,以便您知道如何将数据映射到列。
-
是的,但是如果我们不存储 CSV 的数据,我们就必须上传和解析两次:一次是提取标题,一次是根据用户的选择来处理它。有点丑。
标签: design-patterns grails groovy