Serialize/De-serialize Java Object to MySQL Database

From Java Example Source Code

Jump to: navigation, search

Contents

[edit] Overview - Serialize/De-serialize Java Object to MySQL Database

This Java example program shows how to serialize/de-serialize Java Object to MySQL Database.

[edit] Java Source Code

  • Package: example.jdbc.objectserialization
  • File: SerializeJavaObjects_MySQL.java
package example.jdbc.objectserialization;
 
/*
 * mysql> CREATE TABLE java_objects ( id INT AUTO_INCREMENT, name varchar(128), object_value BLOB,
 * primary key (id));
 */
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
public class SerializeJavaObjects_MySQL {
    static final String WRITE_OBJECT_SQL = "INSERT INTO java_objects(name, object_value) VALUES (?, ?)";
 
    static final String READ_OBJECT_SQL = "SELECT object_value FROM java_objects WHERE id = ?";
 
    public static Connection getConnection() throws Exception {
	String driver = "org.gjt.mm.mysql.Driver";
	String url = "jdbc:mysql://localhost/databaseName";
	String username = "root";
	String password = "root";
	Class.forName(driver);
	Connection conn = DriverManager.getConnection(url, username, password);
	return conn;
    }
 
    public static long writeJavaObject(Connection conn, Object object) throws Exception {
	String className = object.getClass().getName();
	PreparedStatement pstmt = conn.prepareStatement(WRITE_OBJECT_SQL);
 
	// set input parameters
	pstmt.setString(1, className);
	pstmt.setObject(2, object);
	pstmt.executeUpdate();
 
	// get the generated key for the id
	ResultSet rs = pstmt.getGeneratedKeys();
	int id = -1;
	if (rs.next()) {
	    id = rs.getInt(1);
	}
 
	rs.close();
	pstmt.close();
	System.out.println("writeJavaObject: done serializing: " + className);
	return id;
    }
 
    public static Object readJavaObject(Connection conn, long id) throws Exception {
	PreparedStatement pstmt = conn.prepareStatement(READ_OBJECT_SQL);
	pstmt.setLong(1, id);
	ResultSet rs = pstmt.executeQuery();
	rs.next();
	Object object = rs.getObject(1);
	String className = object.getClass().getName();
 
	rs.close();
	pstmt.close();
	System.out.println("readJavaObject: done de-serializing: " + className);
	return object;
    }
 
    public static void main(String args[]) throws Exception {
	Connection conn = null;
	try {
	    conn = getConnection();
	    System.out.println("conn=" + conn);
	    conn.setAutoCommit(false);
	    List<Object> list = new ArrayList<Object>();
	    list.add("This is a short string.");
	    list.add(new Integer(1234));
	    list.add(new Date());
 
	    long objectID = writeJavaObject(conn, list);
	    conn.commit();
	    System.out.println("Serialized objectID => " + objectID);
	    List listFromDatabase = (List) readJavaObject(conn, objectID);
	    System.out.println("[After De-Serialization] list=" + listFromDatabase);
	} catch (Exception e) {
	    e.printStackTrace();
	} finally {
	    conn.close();
	}
    }
}

[edit] What Result You Can Get

Coming soon...

[edit] Required External Libraries and/or Files for this Java Example

In order to run this Java example, one of the following libraries may be required: In order to run this example program, one of the following libraries may be required:


[edit] How to Run this Java Example Program

We recommend running this Java example program with Eclipse.

For assistance in working with Eclipse, please see How to Run Java Program with Eclipse.

It's fairly easy.



[edit] Question & Answer

Any question?

Click edit and post your question or answer here.


Personal tools