Kumar
Kumar

Reputation: 5469

How to store object in sqlite database?

Is it possible to store user defined objects in a SQLite database from Android? For example: I am creating one class and I want to store that class object in the database. Is it possible? If it is, how to proceed? On the Blackberry platform, I am able to store objects directly in persistent objects. Is it possible to do this with SQLite and Android?

Upvotes: 36

Views: 57740

Answers (3)

Praveen
Praveen

Reputation: 93

Use this code to convert your object to byte array and store it in your database as "BLOB"

public byte[] makebyte(Dataobject modeldata) {
            try {

                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ObjectOutputStream oos = new ObjectOutputStream(baos);
                oos.writeObject(modeldata);
                byte[] employeeAsBytes = baos.toByteArray();
                ByteArrayInputStream bais = new ByteArrayInputStream(employeeAsBytes);
                return employeeAsBytes;
            } catch (IOException e) {
                e.printStackTrace();
            }

            return null;
        }

Use this code to convert your byte array to your object again

public Dataobject read(byte[] data) {
    try {


        ByteArrayInputStream baip = new ByteArrayInputStream(data);
        ObjectInputStream ois = new ObjectInputStream(baip);
        Dataobject dataobj = (Dataobject ) ois.readObject();
        return dataobj ;

    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    return null;
}

Upvotes: 6

SohailAziz
SohailAziz

Reputation: 8034

Instead of storing them in SQLite why not store them in db4o, which is specifically designed for storing objects. A simple tutorial for sotring objects using db4o.

Upvotes: 6

Prashast
Prashast

Reputation: 5675

You'll need to be able to serialize your object into a byte stream and then recreate your object from a byte stream.

Then, just store that byte stream in your db.

EDIT: Read this article to learn about serialization in Java. It caters to the subject in a much better way than I would be able to by just giving some code snippets.

Upvotes: 24

Related Questions