Greetings!
I got lost trying to save and read an image file from
a db.
I get file upload taken care of where a servlet
populates a bean with the image file and other info,
but I can't get to be written to the db.
What's the best way to procede, starting with the
bean?
Would this be appropriate: private MultipartFile
imageBody;
Given the following table:
CREATE TABLE story_image
(
image_name varying ( 30 ),
image_description varying (50),
image_body oid
);
... waht's the correct way to make the insert?
I'm using iBatis for handling the jdbc part of the
app.
... partial iBatis sqlMap:
<insert id="saveImage" parameterClass="storyImage" >
INSERT INTO images
(
image_name,
image_description,
image_file
)
VALUES
( #imageName#,
#imageDescription#,
lo_import( #imageBody# )
);
</insert>
... from what I gathered, pg uses a path to the image
file for importing it, so should I store to a temp dir
on
the server and feed pg the path to it?
Would the bean then require a String for the imageBody
variable instead of the MultipartFile?
Am I using the datatype for this operation (oid)?
Before this I was able to store the image file in the
db as 'bytea' but ran into problems trying to
retrieve it:
INFO: Loading XML bean definitions from class path
resource
[org/springframework/jdbc/support/sql-error-codes.xml]
org.springframework.dao.DataIntegrityViolationExce
ption: SqlMapClient operation; SQL [];
--- The error occurred in
com/persistance/sqlmaps_xml/imagesSqlMap.xml.
--- The error occurred while applying a result map.
--- Check the getImageResult.
--- Check the result mapping for the 'imageBody'
property.
--- Cause: org.postgresql.util.PSQLException: Bad
value for type int : \377 ... rest omitted...
... so I'll appreciate any feedback you might have.