All pastes #292921 Raw Edit

Untitled

public text v1 · immutable
#292921 ·published 2006-12-27 00:52 UTC
rendered paste body
public void saveUserObject(SqlUser user, String username) {
	try {
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		ObjectOutputStream oos = new ObjectOutputStream(bos);
		oos.writeObject(user);
		PreparedStatement ps = null;
		//check if user exists
		if(!userExistsInDB(username)) {
			ps = cn.prepareStatement("INSERT INTO " + userTable + " (userName, userObject) VALUES (?, ?)");
			ps.setString(1, username);
			ps.setBytes(2, bos.toByteArray());
		} else {
			ps = cn.prepareStatement("UPDATE " + userTable + " SET userObject = ? WHERE userName = ? LIMIT 1");
			ps.setBytes(1, bos.toByteArray());
			ps.setString(2, username);
		}
		ps.executeUpdate();
		ps.close();
		oos.close();
		bos.close();
	} catch (Exception ex) {
		throw new RuntimeException("Exception in saveUserObject()", ex);
	}
}

private boolean userExistsInDB(String username) {
	try {
		PreparedStatement ps = cn.prepareStatement("SELECT userObject FROM " + userTable + " WHERE userName = ? LIMIT 1");
		ps.setString(1, username);
		ResultSet rs = ps.executeQuery();
		boolean userExists = false;
		if(rs.next())
			userExists = true;
		rs.close();
		ps.close();
		return userExists;
	} catch (Exception ex) {
		throw new RuntimeException("Exception in userExistsInDB()", ex);
	}
}

public SqlUser getUserObject(String username) {
	try {
		PreparedStatement ps = cn.prepareStatement("SELECT userObject FROM " + userTable + " WHERE userName = ? LIMIT 1");
		ps.setString(1, username);
		ResultSet rs = ps.executeQuery();
		if(!rs.next())
			return null;
		byte[] bytes = rs.getBytes(1);
		ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
		ObjectInputStream ois = new ObjectInputStream(bis);
		SqlUser user = (SqlUser) ois.readObject();
		bis.close();
		ois.close();
		rs.close();
		ps.close();
		return user;
	} catch (Exception ex) {
		throw new RuntimeException("Exception in getUserObject()", ex);
	}
}