I have a Person Object with attributes like name, age, sex etc which I wanna store in the sybase database. The column in which it is to be stored is of "text" datatype.

I have converted the object into a Byte Output Stream and stored the object as a Byte Array in to the database. I have done something like this..
Code:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oout = new ObjectOutputStream(baos);
oout.writeObject(obj);
oout.close();
ps.setBytes(1, baos.toByteArray());

Now when I want to read the object from the database I did something like this..

Code:
byte[] buf = rs.getBytes(column);
if (buf != null) {
ObjectInputStream objectIn = new ObjectInputStream(
		new ByteArrayInputStream(buf));
		Object obj = objectIn.readObject();		//Contains the object
		PersonDetails p = (PersonDetails)obj;
		System.out.println(p.getName()+"\t"+p.getAge()+"\t"+p.getSex());
}

I used rs.getBytes and do the following as shown above. Gives me an sql exception. I used getClob also. Still it gives me some sql exception. What I want is the object back. How do I get it back.


Basically My sybase column datatype is "text". Is there a better way to serialize the object and store in the databse. If there is one please let me know. Note that I cant change the type of column type (text) to any other type...