public <T extends ActiveRecord> T find(Class<T> clazz, int id) {

		if (id < 0) {
			throw new IllegalArgumentException(
					"The parameter id can not be negative.");
		}

		String query = "select * from " + clazz.getSimpleName()
				+ " where id = ?";

		PreparedStatement stmt = null;
		ResultSet rs = null;
		Connection connection = null;
		try {
			connection = DB.getConnection();
			if (connection == null) {
				throw new ExcuteQueryException();
			}
			stmt = connection.prepareStatement(query);
			stmt.setInt(1, id);
			rs = stmt.executeQuery();
			if (rs.next()) {
				return (T) handler.toObject(rs, clazz);
			}
			return null;
		} catch (Exception e) {
			throw new ExcuteQueryException(e);
		} finally {
			DbUtils.closeQuietly(rs);
			DbUtils.closeQuietly(stmt);
		}
	}