From 30d6875aa17b0169df5177ba8ba32d802d6b64e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Thu, 10 Apr 2025 20:20:47 +0300 Subject: [PATCH] docs: diagrams for serialized entity and serialized lob --- serialized-entity/README.md | 4 ++++ .../etc/serialized-entity-flowchart.png | Bin 0 -> 32955 bytes serialized-lob/README.md | 4 ++++ serialized-lob/etc/serialized-lob-flowchart.png | Bin 0 -> 40425 bytes 4 files changed, 8 insertions(+) create mode 100644 serialized-entity/etc/serialized-entity-flowchart.png create mode 100644 serialized-lob/etc/serialized-lob-flowchart.png diff --git a/serialized-entity/README.md b/serialized-entity/README.md index f7306dcdf..70a700bb3 100644 --- a/serialized-entity/README.md +++ b/serialized-entity/README.md @@ -32,6 +32,10 @@ Wikipedia says > In computing, serialization is the process of translating a data structure or object state into a format that can be stored (e.g. files in secondary storage devices, data buffers in primary storage devices) or transmitted (e.g. data streams over computer networks) and reconstructed later (possibly in a different computer environment). When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object. For many complex objects, such as those that make extensive use of references, this process is not straightforward. Serialization of objects does not include any of their associated methods with which they were previously linked. +Flowchart + +![Serialized Entity flowchart](./etc/serialized-entity-flowchart.png) + ## Programmatic Example of Serialized Entity Pattern in Java The Serialized Entity design pattern is a way to easily persist Java objects to the database. It uses the `Serializable` interface and the DAO (Data Access Object) pattern. The pattern first uses `Serializable` to convert a Java object into a set of bytes, then it uses the DAO pattern to store this set of bytes as a BLOB (Binary Large OBject) in the database. diff --git a/serialized-entity/etc/serialized-entity-flowchart.png b/serialized-entity/etc/serialized-entity-flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..0f382155e9abd84cdd2d2da28f4142ae14b79d8c GIT binary patch literal 32955 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 literal 0 HcmV?d00001 diff --git a/serialized-lob/README.md b/serialized-lob/README.md index 06eea05f4..79b26ae2d 100644 --- a/serialized-lob/README.md +++ b/serialized-lob/README.md @@ -30,6 +30,10 @@ In plain words > The Serialized LOB design pattern manages the storage of large objects, such as files or multimedia, by serializing and storing them directly within a database. +Flowchart + +![Serialized LOB flowchart](./etc/serialized-lob-flowchart.png) + ## Programmatic Example of Serialized LOB Pattern in Java The Serialized Large Object (LOB) design pattern is a way to handle large objects in a database. It involves serializing an object graph into a single large object (a BLOB or CLOB, for Binary Large Object or Character Large Object, respectively) and storing it in the database. When the object graph needs to be retrieved, it is read from the database and deserialized back into the original object graph. diff --git a/serialized-lob/etc/serialized-lob-flowchart.png b/serialized-lob/etc/serialized-lob-flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..075c7e238cf786dd4b2b4908af4ffe74b174330b GIT binary patch literal 40425 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 P0FUu?GlL4f2hslmIohna literal 0 HcmV?d00001