ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tomasz brymora <tomekpi...@yahoo.com>
Subject BLOB, iBatis & PostgreSql 8.1
Date Fri, 13 Jul 2007 19:11:23 GMT
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.

Mime
View raw message