`
stephen830
  • 浏览: 3028555 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Context.openOrCreateDatabase 与 SQLiteDatabase.openOrCreateDatabase的区别

 
阅读更多

Context.openOrCreateDatabase 与 SQLiteDatabase.openOrCreateDatabase的区别

 

Context.openOrCreateDatabase 与 SQLiteDatabase.openOrCreateDatabase本质上完成的功能都一 样,Context.openOrCreateDatabase最终是需要调用 SQLiteDatabase.openOrCreateDatabase来完成数据库的创建的。

也就是说, SQLiteDatabase类是android上对sqlite的最底层的封装,几乎所有的对数据库的操作最终都通过这个类来实现。

而Context里面提供的方法,是用于上下文的时候创建数据库,例如你在某个逻辑里面创建的数据库只是在特定的context里面,对于数据库的权限,交由context来管理,而这个逻辑可能是会提供给不止一个context


至于SQLiteDatabase和SQLiteOpenHelper就更好理解了,后者只是一个抽象类,用来告诉你怎样使用SQLiteDatabase类而已,你完全可以自己基于SQLiteDatabase写一个自己的helper.

分享到:
评论

相关推荐

    android中自建数据库时遇到的最最最常见的错误的解决方法!!!

    hello!大家好啊!好久不见哈,有些日子没写博客了哈!不过我可没偷懒啊,我只不过去收集博客素材了,收获满满哦!...Context.openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteD

    android openOrCreateDatabase

    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbHelper.getDatabasePath(DATABASE_NAME), null); ``` 5. **最佳实践**: - 尽可能使用`SQLiteOpenHelper`,因为它提供了数据库版本管理和回调方法。...

    03、数据库和内容提供者v51

    public DBOpenHandler(Context context, String dbName, SQLiteDatabase.CursorFactory factory, int dbVersion) { super(context, dbName, factory, dbVersion); } @Override public void onCreate...

    09 数据存储(二)1

    - 使用`Context.openOrCreateDatabase()`函数创建或打开数据库,如`Context.openOrCreateDatabase("my_sqlite_database.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);` 5. **创建表**: - 使用`execSQL()`...

    Android 数据库编程基础

    SQLiteDatabase myDatabase = this.openOrCreateDatabase("myDatabase.db", MODE_PRIVATE, null); // 创建表 myDatabase.execSQL("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT)"); // ...

    adroid学习资料

    SQLiteDatabase db = this.openOrCreateDatabase("MyDB", Context.MODE_PRIVATE, null); db.execSQL("CREATE TABLE IF NOT EXISTS my_table (id INTEGER PRIMARY KEY, data TEXT)"); db.execSQL("INSERT INTO my_...

    android databae

    正常情况下返回与`getWritableDatabase()`相同的行为,但如果遇到磁盘空间不足或数据库只能以只读方式打开等问题,则会返回只读的`SQLiteDatabase`对象。当这些问题被解决后,只读的`SQLiteDatabase`对象会被关闭,...

    Android数据存储与访问

    SQLiteDatabase db = context.openOrCreateDatabase("MyDB", MODE_PRIVATE, null); // 执行SQL创建表 db.execSQL("CREATE TABLE IF NOT EXISTS Users (ID INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT, Age ...

    四种Android数据存储方式

    - `SQLiteDatabase db = context.openOrCreateDatabase("数据库名.db", MODE_PRIVATE, null);` - **创建表**: - 使用`execSQL()`或`rawQuery()`方法执行SQL语句,如:`db.execSQL("CREATE TABLE IF NOT EXISTS ...

    android 数据库SQLite学习笔记.docx

    - 创建数据库:通常有两种方式,一是通过`Context.createDatabase()`,二是通过`Context.openOrCreateDatabase()`,通常传入的`CursorFactory`为null。 - 继承`SQLiteOpenHelper`:这是管理数据库创建和升级的标准...

    AndroidSqlite数据库操作封装SQLiteUtils.zip

    初始化对象:SQLiteDatabase db = context.openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null); DbSqlite dbSqlite = new DbSqlite(db); IBaseDao userDAO = DaoFactory.createGenericDao(db...

    SQL 数据库基本操作

    Context.openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory) ``` 这里,`name`是数据库的名称,`mode`定义了数据库的访问权限,`factory`则是用于创建Cursor对象的工厂类。虽然...

    SQLCipherDemo 代码实现SQLCipher对数据库文件的加密

    SQLCipher在这些基本操作上与未加密的SQLite数据库并无区别,但请注意,由于数据的加密,查询性能可能会略有下降。 总结起来,SQLCipher是一个强大的工具,能够为SQLite数据库提供额外的安全保障。通过在项目中集成...

    mportdatabase

    3. 使用`Context.openOrCreateDatabase()`或`SQLiteDatabase.create()`方法创建并打开数据库。如果数据库已存在,此操作会直接打开;如果不存在,会创建一个新数据库。 4. 在复制数据库文件时,需要获取`assets`...

    android数据库详解

    SQLiteDatabase myDatabase = this.openOrCreateDatabase("myDatabase.db", MODE_PRIVATE, null); myDatabase.execSQL("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT)"); // 插入数据 ...

    A0606使用SQLite保存数据1

    - 创建数据库实例:`this.openOrCreateDatabase("info", SQLiteDatabase.OPEN_READWRITE, null);` - 创建表:`create_table`变量定义了创建表的SQL语句,然后通过`db.execSQL(create_table)`执行。 5. **职业素质...

    Android sqllite3 基础入门

    SQLiteDatabase db = context.openOrCreateDatabase("friends", Context.MODE_PRIVATE, null); ``` #### 表的创建与数据操作 - **创建表**:可以通过SQL语句或Java代码来创建表。例如,使用命令行方式创建一个名...

    detail-brians

    SQLiteDatabase db = this.openOrCreateDatabase("mydatabase.db", Context.MODE_PRIVATE, null); // 创建表 db.execSQL("CREATE TABLE IF NOT EXISTS Users (id INTEGER PRIMARY KEY, name TEXT)"); // 插入数据 ...

    sqlcipher用来辅助查看数据库

    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(databasePath, "your_password", null); ``` 这里的"your_password"就是加密密钥。 5. **安全性考虑**: 虽然SQLCipher提供了加密功能,但安全性的...

Global site tag (gtag.js) - Google Analytics