String[] projection = {
UserExerciseLog.UserExerciseLogEntry.COLUMN_EXERCISE,
UserExerciseLog.UserExerciseLogEntry.COLUMN_REPS,
UserExerciseLog.UserExerciseLogEntry.COLUMN_WEIGHT,
UserExerciseLog.UserExerciseLogEntry.COLUMN_SET_COUNT,
UserExerciseLog.UserExerciseLogEntry.COLUMN_TOTAL_SET_COUNT,
UserExerciseLog.UserExerciseLogEntry.COLUMN_DATE,
UserExerciseLog.UserExerciseLogEntry.COLUMN_ORDER
};
String sortOrder = UserExerciseLog.UserExerciseLogEntry.COLUMN_ORDER + " DESC";
String selection = String.format("%s = ?",UserExerciseLog.UserExerciseLogEntry.COLUMN_DATE);
String[] selectionArgs = {date};
Cursor cursor = db.query(
UserExerciseLog.UserExerciseLogEntry.TABLE_NAME, // The table to query
projection, // The array of columns to return (pass null to get all)
selection, // The columns for the WHERE clause
selectionArgs, // The values for the WHERE clause
null, // don't group the rows
null, // don't filter by row groups
sortOrder // The sort order
);
특정 날짜에 해당하는 레코드의 전체 column의 데이터를 받는 예제이다.
반환 받고자 하는 column을 작성한다.
where절에 해당한다. 만약에 추가로 찾고싶은 조건이 있다면 AND연 산을 추가하면 된다.
String selection = String.format("%s = ? AND %s = ?",
UserExerciseLog.UserExerciseLogEntry.COLUMN_DATE,
UserExerciseLog.UserExerciseLogEntr.COLUMN_TYPE);
selection에서 ? 에 해당하는 부분을 순차적으로 넣어주면 된다.
selection query를 수행한다.
특정 날짜에 특정 운동 종목을 가진 레코드를 삭제하는 예제이다.
String selection = UserExerciseLog.UserExerciseLogEntry.COLUMN_DATE + " LIKE ? AND " +
UserExerciseLog.UserExerciseLogEntry.COLUMN_EXERCISE + " = ?";
String[] selectionArgs = {getCurrentDate(), selectedExercise};
db_write.delete(UserExerciseLog.UserExerciseLogEntry.TABLE_NAME,
selection,
selectionArgs);
삭제하고자 하는 조건절에 해당한다.
조건절의 ? 에 해당하는 부분을 순차적으로 넣는다.
조건에 맞게 테이블에서 삭제한다.
String reps = repEditText.getText().toString();
ContentValues values = new ContentValues();
values.put(UserExerciseLog.UserExerciseLogEntry.COLUMN_REPS, Integer.parseInt(reps));
String selection = UserExerciseLog.UserExerciseLogEntry.COLUMN_EXERCISE + " = ? AND " +
UserExerciseLog.UserExerciseLogEntry.COLUMN_DATE + " = ?";
String[] selectionArgs = {
selectedExercise,
getCurrentDate()
};
userExerciseLogDb_write.update(
UserExerciseLog.UserExerciseLogEntry.TABLE_NAME,
values,
selection,
selectionArgs
);
특정 조건을 만족하는 레코드의 REPS column 값을 변경하는 예제이다.
추가할 열의 이름과 데이터를 넣는다.
조건절이다.
조건절의 ?에 해당하는 값을 넣는다.
주어진 조건에 맞게 업데이트 하고 업데이터된 레코드의 수를 반환한다.