Как сохранить файл в базе данных с помощью Grails - PullRequest
6 голосов
/ 06 апреля 2009

Мне нужно сохранить файл в базе данных, используя Grails. Итак, вы знаете, как я могу это сделать? Какой тип данных мне следует использовать в классе домена (может быть, byte [] может быть решением)?

Ответы [ 5 ]

7 голосов
/ 06 апреля 2009

См. Главу о загрузке файлов в Руководстве пользователя Grails . Также можно использовать java.sql.Blob в качестве типа для двоичного содержимого (что было бы предпочтительнее при работе с большими файлами).

5 голосов
/ 07 апреля 2009

альтернативно, сохраните файл на диске и сохраните путь к нему в базе данных. как правило, быстрее получить доступ к этому файлу на диске, чем в БД. но, конечно, это зависит только от ваших потребностей в приложении. Но знайте об этой альтернативе.

3 голосов
/ 14 октября 2010

Вы можете заставить объект домена использовать определенный тип при обновлении или создании базы данных с сопоставлениями столбцов:

byte[] orgFile

static mapping = {
   columns { 
    orgFile type:'blob'
   }
}

Это сработало для меня до сих пор;)

2 голосов
/ 16 июля 2010

У меня была такая же проблема. Все, что мне нужно было сделать, - это зайти в базу данных (Oracle) и изменить тип столбца с RAW на Blob. (На самом деле мне пришлось удалить столбец, а затем создать новый). Я никогда не был в состоянии узнать, как использовать "java.sql.Blob", как предложено выше. Я нашел это это (преобразование из байтов в Blob) , но это казалось немного сложным.

0 голосов
/ 15 апреля 2009

Я недавно использовал byte [] в доменном классе для хранения файла, он работал нормально, пока я не переместил свое приложение из "HSQLDB" в "Oracle express". В Oracle, byte [] был сопоставлен с необработанным объектом вместо blob ... (не уверен, что именно было неправильно), и я наконец-то решил проблему с помощью java.sql.blob

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...