All pastes #292920 Raw Edit

Something

public text v1 · immutable
#292920 ·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);
		}
	}