static final String WRITE_OBJECT_SQL = "INSERT INTO filter_beans(name, bean_array,title) VALUES (?, ?,?)"; static final String UPDATE_OBJECT_SQL = "UPDATE filter_beans SET bean_array = ?, title=? WHERE id = ?"; static final String READ_OBJECT_SQL = "SELECT bean_array FROM filter_beans WHERE id = ?"; static final String DELETE_OBJECT_SQL = "DELETE FROM filter_beans WHERE id = ?"; private long writeJavaObject(ArrayList beans,String SQL, long index, String Title) throws Exception { String className = beans.getClass().getName(); PreparedStatement pstmt = this.conn.prepareStatement(SQL); if (index <0) { /* Adding new */ pstmt.setObject(2, beans); pstmt.setString(1,className); pstmt.setString(3, Title); } else { /* Updating old */ pstmt.setObject(1, beans); pstmt.setString(2,Title); pstmt.setLong(3, index); } 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; } private ArrayList readJavaObject(long id) throws Exception { ArrayList beans = null; PreparedStatement pstmt = this.conn.prepareStatement(READ_OBJECT_SQL); pstmt.setLong(1, id); ResultSet rs = pstmt.executeQuery(); rs.next(); beans = (ArrayList) rs.getObject(1); /* causes exception */ rs.close(); pstmt.close(); System.out.println("readJavaObject: done de-serializing: " + beans.getClass().getName()); return beans; }