Можно ли сохранить несериализованный объект Java в столбце mySQL BLob? - PullRequest
1 голос
/ 06 мая 2011

У меня есть Java-объекты, которые не сериализуемые.Это внешняя библиотека, и я не могу пометить их как сериализуемые.Вот пара вопросов ...

1) Могут ли они все еще быть записаны в столбец BLOB mySQL?

2) Есть ли другой способ сохранить их вне моей JVM?

Любая помощь будет полезна.

Спасибо -a.

Ответы [ 5 ]

2 голосов
/ 06 мая 2011

1) Можно ли по-прежнему записывать их в столбец BLOB mySQL?

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

2) Есть ли другой способ сохранить их вне моей JVM?

Взгляните на XStream

2 голосов
/ 06 мая 2011

1) Вы пробовали это?

2) Конечно, например, в файлах XML. Я лично использую XStream

1 голос
/ 06 мая 2011

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

Как вы это делаете, зависит только от вас - вокруг есть лотов фреймворков / протоколов / и так далее.

0 голосов
/ 06 мая 2011
  1. Они могут, но не автоматически. Вам придется придумать свой собственный код, чтобы создать двоичное представление вашего объекта, сохранить двоичные данные в вашей базе данных, а затем восстановить объект, когда вы извлекаете данные из базы данных.

  2. Да, но снова это не будет автоматическим. Вам нужно придумать собственное двоичное представление объекта, решить, как вы хотите его сохранить, а затем восстановить объект, когда вы хотите его прочитать.

0 голосов
/ 06 мая 2011

Serializable ничего не делает сам по себе, это просто способ намекнуть, что класс может быть сериализуемым. Некоторые инструменты требуют наличия интерфейса, а некоторые нет.

Я не рассматривал хранение java-объектов как mySQL BLOB, но если сериализуемые java-объекты могут быть, то я не вижу причин, почему это было бы невозможно.

2) Есть ли другой способ сохранить их вне моей JVM?

Есть много способов сохранить объекты вне JVM. Сохраните его на диск, FTP, сетевое хранилище и т. Д., И существует столько же инструментов для хранения в различных форматах (таких как XML и т. Д.).

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