Загрузить данные из CSV в Grails - PullRequest
0 голосов
/ 17 июня 2010

У меня есть CSV-файл со списком «забаненных имен пользователей» - это около 10000 имен.По сути, я хочу проверить этот список при регистрации пользователя.Я хотел бы загрузить этот список в свою базу данных, но я бы предпочел не создавать объект домена для каждого имени и BootStrap их.Тем не менее, я бы также хотел остаться в рамках Grails в части управления моими данными.Например, если для dbCreate установлено значение create-drop, я не хочу терять свой список имен пользователей, то есть я не хочу просто создавать отдельную таблицу вручную.Как мне это сделать?Предоставляет ли Grails что-либо из коробки, чтобы справиться с такой ситуацией?Любой совет был бы великолепен

Ответы [ 3 ]

1 голос
/ 18 июня 2010

Итак, в чем конкретно заключается ваша проблема с созданием класса домена для этих забаненных имен пользователей и хранением их в базе данных? Единственная проблема, которую я вижу, заключается в том, что вам нужно загружать их как начальные данные каждый раз, когда вы запускаете свое приложение в разработке (в производственной среде вы не будете использовать create-drop, не так ли? ;-)). Я не проверял это, но я предполагаю, что с 10 000 очень простых объектов это не должно вызывать раздражение, блокирующее производительность. В работе вы, скорее всего, будете использовать «обновление» в качестве стратегии гибернации, поэтому вам просто нужно загрузить ваши данные один раз в производственную базу данных. Поэтому я предпочел бы создать класс домена и загрузить данные при запуске приложения (только в разработке).

Если ваши забаненные данные имени пользователя доступны только для чтения (т. Е. Список не расширяется во время выполнения), вы также можете рассмотреть возможность загрузки их в память (вероятно, HashSet для постоянного времени contains()). 10 000 строк не должны быть проблемой в отношении потребления памяти, и необходимость загружать их при каждом запуске приложения также не является проблемой, потому что обычно вы не слишком часто перезапускаете свою производственную среду.

1 голос
/ 19 июня 2010

Да, вы можете загрузить свой файл в базу данных и по-прежнему использовать его в своем приложении Grails.На этом этапе вы можете использовать Groovy Sql для выполнения пользовательских запросов.Я думаю, что это хорошая практика - хранить запросы вместе внутри классов стилей DAO, но это ваше дело.Если вы идете по этому пути, вы все равно можете использовать внедрение зависимостей классов DAO в ваши сервисы, используя аннотации @Component и @Resource

0 голосов
/ 17 июня 2010

Я думаю, вы хотите, чтобы эти данные были в базе данных. таким образом, вы можете запросить регистрируемого пользователя по «черным спискам» имен.

...