|
|
|
@ -26,6 +26,12 @@
|
|
|
|
|
* @Author: 齐景熙
|
|
|
|
|
* @Date: 2024-12-21 23:10
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*主要成员变量和常量:
|
|
|
|
|
mMatcher:URI 匹配器,用于匹配不同的 URI。
|
|
|
|
|
mHelper:数据库帮助者对象,用于访问数据库。
|
|
|
|
|
TAG:用于日志记录的标签。
|
|
|
|
|
URI_NOTE、URI_NOTE_ITEM 等:定义了不同 URI 的匹配码。 */
|
|
|
|
|
package net.micode.notes.data;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -52,8 +58,6 @@ import net.micode.notes.data.NotesDatabaseHelper.TABLE;
|
|
|
|
|
* @date: 2024-12-21 23:12
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class NotesProvider extends ContentProvider {
|
|
|
|
|
private static final UriMatcher mMatcher;
|
|
|
|
|
|
|
|
|
@ -116,10 +120,20 @@ public class NotesProvider extends ContentProvider {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method query
|
|
|
|
|
* @description 查询数据。根据匹配的 URI,执行不同的查询操作
|
|
|
|
|
* @description 查询数据。根据匹配的 URI,执行不同的查询操作:
|
|
|
|
|
URI_NOTE:查询笔记表。
|
|
|
|
|
URI_NOTE_ITEM:查询特定 ID 的笔记。
|
|
|
|
|
URI_DATA:查询数据表。
|
|
|
|
|
URI_DATA_ITEM:查询特定 ID 的数据。
|
|
|
|
|
URI_SEARCH、URI_SEARCH_SUGGEST:执行搜索查询,根据搜索字符串查询笔记的摘要。
|
|
|
|
|
* @date: 2024-12-21 23:15
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
/*uri:要查询的 URI。
|
|
|
|
|
projection:要查询的列。
|
|
|
|
|
selection:查询条件。
|
|
|
|
|
selectionArgs:查询条件参数。
|
|
|
|
|
sortOrder:排序顺序。 */
|
|
|
|
|
@Override
|
|
|
|
|
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
|
|
|
|
|
String sortOrder) {
|
|
|
|
@ -183,10 +197,16 @@ public class NotesProvider extends ContentProvider {
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* @method insert
|
|
|
|
|
* @description 插入数据。根据匹配的 URI,执行不同的插入操作
|
|
|
|
|
* @description 插入数据。根据匹配的 URI,执行不同的插入操作:
|
|
|
|
|
URI_NOTE:向笔记表插入笔记。
|
|
|
|
|
URI_DATA:向数据表插入数据。
|
|
|
|
|
插入成功后,通知相关的 URI 发生变化。
|
|
|
|
|
* @date: 2024-12-21 23:17
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
/* 参数:
|
|
|
|
|
uri:要插入的 URI。
|
|
|
|
|
values:要插入的数据。*/
|
|
|
|
|
@Override
|
|
|
|
|
public Uri insert(Uri uri, ContentValues values) {
|
|
|
|
|
SQLiteDatabase db = mHelper.getWritableDatabase();
|
|
|
|
@ -223,10 +243,21 @@ public class NotesProvider extends ContentProvider {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method delete
|
|
|
|
|
* @description 删除数据。根据匹配的 URI,执行不同的删除操作
|
|
|
|
|
* @description 删除数据。根据匹配的 URI,执行不同的删除操作:
|
|
|
|
|
URI_NOTE:删除笔记表中的笔记。
|
|
|
|
|
URI_NOTE_ITEM:删除特定 ID 的笔记。
|
|
|
|
|
URI_DATA:删除数据表中的数据。
|
|
|
|
|
URI_DATA_ITEM:删除特定 ID 的数据。
|
|
|
|
|
删除成功后,通知相关的 URI 发生变化。
|
|
|
|
|
* @date: 2024-12-21 23:20
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*参数:
|
|
|
|
|
uri:要删除的 URI。
|
|
|
|
|
selection:删除条件。
|
|
|
|
|
selectionArgs:删除条件参数。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public int delete(Uri uri, String selection, String[] selectionArgs) {
|
|
|
|
|
int count = 0;
|
|
|
|
@ -274,10 +305,20 @@ public class NotesProvider extends ContentProvider {
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* @method update
|
|
|
|
|
* @description 更新数据。根据匹配的 URI,执行不同的更新操作
|
|
|
|
|
* @description 更新数据。根据匹配的 URI,执行不同的更新操作:
|
|
|
|
|
URI_NOTE:更新笔记表中的笔记。
|
|
|
|
|
URI_NOTE_ITEM:更新特定 ID 的笔记。
|
|
|
|
|
URI_DATA:更新数据表中的数据。
|
|
|
|
|
URI_DATA_ITEM:更新特定 ID 的数据。
|
|
|
|
|
更新成功后,通知相关的 URI 发生变化。
|
|
|
|
|
* @date: 2024-12-21 23:22
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
/*参数:
|
|
|
|
|
uri:要更新的 URI。
|
|
|
|
|
values:更新的数据。
|
|
|
|
|
selection:更新条件。
|
|
|
|
|
selectionArgs:更新条件参数。 */
|
|
|
|
|
@Override
|
|
|
|
|
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
|
|
|
|
|
int count = 0;
|
|
|
|
@ -323,6 +364,9 @@ public class NotesProvider extends ContentProvider {
|
|
|
|
|
* @date: 2024-12-21 23:25
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*参数:
|
|
|
|
|
selection:查询条件。 */
|
|
|
|
|
private String parseSelection(String selection) {
|
|
|
|
|
return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : "");
|
|
|
|
|
}
|
|
|
|
@ -334,6 +378,10 @@ public class NotesProvider extends ContentProvider {
|
|
|
|
|
* @date: 2024-12-21 23:27
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
/*参数:
|
|
|
|
|
id:笔记 ID。
|
|
|
|
|
selection:更新条件。
|
|
|
|
|
selectionArgs:更新条件参数。 */
|
|
|
|
|
private void increaseNoteVersion(long id, String selection, String[] selectionArgs) {
|
|
|
|
|
StringBuilder sql = new StringBuilder(120);
|
|
|
|
|
sql.append("UPDATE ");
|
|
|
|
|