---
title: "Сериализиране и работа с документ в база данни"
---


Една от задачите, които може да се наложи да свършите, когато работите с документи се съхранява и извлича **Document** обекти към и от база данни. Например, това би било необходимо, ако се прилага всякакъв вид система за управление на съдържанието. Всички предишни версии на документи трябва да се съхраняват в базата данни. Възможността за съхранение на документи в базата данни също е изключително полезна, когато вашето приложение предоставя уеб-базирана услуга.

Aspose.Words осигурява възможност за преобразуване на документ в байт масив за последваща работа с този документ в база данни.

## Конвертиране на документ в байт станция

За да се съхранява документ в база данни или за да се подготви документ за предаване в мрежата, често е необходимо да се сериализира документът, за да се получи байт масив.

Серийна [Document](https://reference.aspose.com/words/java/com.aspose.words/document/) обект в Aspose.Words:

1. Запази го за **MemoryStream** с помощта на [Save](https://reference.aspose.com/words/java/com.aspose.words/document/#save-java.io.OutputStream-int) претоварване на метода **Document** Клас.
1. Обади се на **ToArray** метод, който връща масив от байтове, представящи документа в байт форма.

Стъпките по-горе могат да бъдат обърнати, за да се заредят байтите обратно в a **Document** Възразявам.

{{% alert color="primary" %}}

Избраният формат за запис е важен, за да се гарантира, че най-високата вярност се запазва при запис и повторно зареждане в **Document** Възразявам. Поради тази причина се предлага да се използва серия от OOXML файлови формати.

{{% /alert %}}

Примерът по- долу показва как да серийна **Document** обект за получаване на байт масив, и след това как да се десерийнизира масива байт, за да се получи a **Document** Възразявам отново:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-ConvertDocumentToByte-ConvertDocumentToByte.java" >}}

{{% alert color="primary" %}}

Можете да изтеглите шаблонния файл на този пример от [Aspose.Words GitHub](https://github.com/aspose-words/Aspose.Words-for-Java/blob/master/Examples/Data/Document.doc).

{{% /alert %}}

## Съхраняване, четене и изтриване на документ в база данни

Този раздел показва как да запишете документ в база данни и след това да го заредите обратно в `Document` Възразявам да работя с него. За простота името на файла е ключът, който се използва за съхранение и извличане на документи от базата данни. Базата данни съдържа две колони. Първата колона по FileName се съхранява като низ и се използва за идентифициране на документи. Втората колона се съхранява като `BLOB` обект, който съхранява документа обект в байт форма.

Следният пример за код показва как да се създаде връзка към база данни и да се изпълняват команди:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-LoadAndSaveFromDatabase-OpenDatabaseConnection.java" >}}

{{% alert color="primary" %}}

В този пример, ние използваме MySQL база данни, за да съхранявате Aspose.Words документ.

{{% /alert %}}

Следният пример за код показва как да се запише документ в базата данни, след това да се прочете отново същия документ и накрая да се изтрие записът, съдържащ документа от базата данни:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-LoadAndSaveFromDatabase-OpenRetrieveAndDelete.java" >}}

### Запис на документ в база данни

За да запазите документ в база данни конвертирайте този документ в масив от байтове, както е описано в началото на тази статия. След това, запишете този байт масив в база данни поле.

Следният пример за код показва как да се запази документ в посочената база данни:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-LoadAndSaveFromDatabase-StoreToDatabase.java" >}}

Посочете команда String, което е SQL израз, който върши цялата работа:

- За да запазите документ в базата данни, се използва командата по NISTERT. За да се избегнат допълнителни параметри, името на файла е взето от **Document** Самият обект. На `FileContent` стойност на полето се присвоява байтове от потока памет, който съдържа двоично представяне на съхранявания документ.
- Оставащият ред на кода изпълнява командата, която съхранява Aspose.Words документ в базата данни.

### Изтегляне на документ от база данни

За да изтеглите документ от базата данни, изберете запис, който съдържа данните на документа като масив от байтове. След това заредете байт масива от запис в **MemoryStream** и създаване на **Document** обект, който ще зареди документа от **MemoryStream**.

Следният пример за код показва как да изтеглите и върнете документ от посочената база данни, използвайки името на файла като ключ за извличане на този документ:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-LoadAndSaveFromDatabase-ReadFromDatabase.java" >}}

{{% alert color="primary" %}}

Командата SQL по SELECT * от ... се използва за получаване на съответния запис въз основа на името на файла.

{{% /alert %}}

### Изтриване на документ от база данни

За да изтриете документ от базата данни, използвайте съответната команда SQL без никакви манипулации на **Document** Възразявам.

Следният пример за код показва как да изтриете документ от базата данни, като използвате името на файла, за да изтеглите записа:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-LoadAndSaveFromDatabase-DeleteFromDatabase.java" >}}
