SQLite 是什么?
📌 一、SQLite 是什么?
SQLite 是一个轻量级、嵌入式数据库,意思是它直接集成在你的 App 内部,不需要单独安装数据库服务端。
✅ 特点:
特点 | 说明 |
---|---|
本地使用 | 所有数据保存在手机内部存储 |
文件形式 | 数据以 .db 文件形式存储 |
零配置 | 不需要数据库服务器 |
跨平台 | Android/iOS/桌面 都能用 |
高性能 | 适合小型数据、缓存、离线存储等场景 |
📦 二、Android 中如何使用 SQLite?
你可以直接用原生 SQLite API,也可以用封装库(更推荐)
🛠 方法一:原生 SQLite(SQLiteOpenHelper
)
java
复制编辑
public class MyDbHelper extends SQLiteOpenHelper { private static final String DB_NAME = "mybooks.db"; private static final int DB_VERSION = 1; public MyDbHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS CacheBean (filePath TEXT PRIMARY KEY, customPage INTEGER)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 数据库升级逻辑 } }
插入数据:
java
复制编辑
SQLiteDatabase db = helper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("filePath", "/storage/emulated/0/book1.pdf"); values.put("customPage", 5); db.insert("CacheBean", null, values);
查询数据:
java
复制编辑
Cursor cursor = db.query("CacheBean", null, null, null, null, null, null); while (cursor.moveToNext()) { String path = cursor.getString(cursor.getColumnIndex("filePath")); int page = cursor.getInt(cursor.getColumnIndex("customPage")); } cursor.close();
🛠 方法二:用 Room(谷歌官方推荐)
Room 是一个 SQLite 封装库,用起来更安全方便:
1. 添加依赖
gradle
复制编辑
implementation "androidx.room:room-runtime:2.6.1" annotationProcessor "androidx.room:room-compiler:2.6.1"
2. 创建实体类
java
复制编辑
@Entity public class CacheBean { @PrimaryKey @NonNull public String filePath; public int customPage; }
3. 创建 DAO 接口
java
复制编辑
@Dao public interface CacheDao { @Query("SELECT * FROM CacheBean") List<CacheBean> getAll(); @Insert(onConflict = OnConflictStrategy.REPLACE) void insert(CacheBean cacheBean); }
4. 创建数据库类
java
复制编辑
@Database(entities = {CacheBean.class}, version = 1) public abstract class AppDatabase extends RoomDatabase { public abstract CacheDao cacheDao(); }
5. 使用数据库
java
复制编辑
AppDatabase db = Room.databaseBuilder(context, AppDatabase.class, "book_db").build(); db.cacheDao().insert(new CacheBean("file.pdf", 3));
🔎 三、如何查看 SQLite 中的数据?
方法一:Android Studio 查看 SQLite 数据库
-
打开 Android Studio
-
点击
Device File Explorer
-
路径:
/data/data/你的包名/databases/
-
找
.db
文件,右键导出 -
用工具打开(推荐 DB Browser for SQLite)
👉 官网下载 DB Browser for SQLite
方法二:用命令行(adb shell)
bash
复制编辑
adb shell run-as com.wh.app # 你的包名 cd databases sqlite3 your_db_name.db
然后用 SQL 查看数据:
sql
复制编辑
.tables SELECT * FROM CacheBean;
💡 总结一句话:
SQLite 就是你 App 内的本地数据库,你的书签就存在这个数据库的 .db
文件中。
如果你给我 CacheDaoUtil
的代码,我可以帮你确认用的是 SQLite 还是别的。如果你想自己动手接入 Room,我也可以帮你一步步替换现有代码。
需要我手把手教你建个数据库页面展示这些书签吗?👀