大家好,好久没有更新博客了,最近由于身体不适让大家久等了,好了,直接进入主题~ Android 提供了三种数据存储方式,第一种是文件存储;第二种是SharedPreferences 存储;第三种就是数据库SQLiteDatabase...今天我们将讲一下SQLiteDatabase 的使用。 而掌握SqliteDatabase ,将会我们接下来掌握ContentProvider 打下良好的基石。...super(context, DATABASE\_NAME, null, DATABASE\_VERSION); } //创建table @Override public void onCreate(SQLiteDatabase...BOOK\_NAME + " text, "+ BOOK\_AUTHOR +" text);"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase...= "DROP TABLE IF EXISTS " + TABLE\_NAME; db.execSQL(sql); onCreate(db); } public Cursor select() { SQLiteDatabase
Android 提供了三种数据存储方式,第一种是文件存储;第二种是SharedPreferences 存储;第三种就是数据库SQLiteDatabase 存储。...今天我们将讲一下SQLiteDatabase 的使用**。** 而掌握SqliteDatabase ,将会我们接下来掌握ContentProvider 打下良好的基石**。...super(context, DATABASE\_NAME, null, DATABASE\_VERSION); } //创建table @Override public void onCreate(SQLiteDatabase...BOOK\_NAME + " text, "+ BOOK\_AUTHOR +" text);"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase...= "DROP TABLE IF EXISTS " + TABLE\_NAME; db.execSQL(sql); onCreate(db); } public Cursor select() { SQLiteDatabase
对象 调用SQLiteDatabase对象的execSQL()方法,参数:String的sql语句(例如:create table blacknumber (id integer primary key...对象 调用SQLiteDatabase对象的rawQuery()方法,获取到Cursor对象,参数:String类型SQL语句,String[]参数值数组 调用Cursor对象的moveToNext()...对象 调用SQLiteDatabase对象的insert()方法,插入一条记录,参数:String表名,允许为null的列,ContentValues对象 获取ContentValues对象,new出来...对象 调用SQLiteDatabase对象的update()方法,修改表记录,参数:String表名,ContentValues对象,String的条件(“number=?”)...对象 调用SQLiteDatabase对象的delete()方法,删除表记录,参数:String表名,String的条件(“number=?”)
DATA:包含了 年份、月份、日期; TIME: 包含了 小时、分钟、秒; 2 SQLiteDatabase的介绍 Android提供了创建和是用SQLite数据库的API。...SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。...下面是SQLiteDatabase的常用方法。 SQLiteDatabase的常用方法 Google公司命名这些方法的名称都是非常形象的。...onUpgrade(SQLiteDatabase,int,int) 当数据库需要升级的时候,Android系统会主动的调用这个方法。...onOpen(SQLiteDatabase): 这是当打开数据库时的回调函数,一般在程序中不是很常使用。 写了这么多,改用用实际例子来说明上面的内容了。
/** * 创建表 */ @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub...static SQLiteDatabase openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags) 根据提供的模式打开一个数据库...openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory) 等同于openDatabase(file.getPath()..., factory, CREATE_IF_NECESSARY) static SQLiteDatabase openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory...Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery, String editTable, SQLiteQuery
SQLiteDatabase是SQLite的数据库管理类,我们可在Activity页面代码或者任何能取到Context的地方获取数据库实例,参考代码如下: //创建数据库,如果已存在则打开...SQLiteDatabase db = getApplicationContext().openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null...); //删除数据库 getApplicationContext().deleteDatabase("test.db"); SQLiteDatabase提供了若干操作数据表的API,常用的列举如下...废话少说,直接上该示例类的代码: import android.content.Context; import android.database.sqlite.SQLiteDatabase; import...= true) { mDB = mHelper.getReadableDatabase(); } return mDB; } public SQLiteDatabase openLink
对象去做转账(sql语句) SQLiteDatabase db = bankOpenHelper.getReadableDatabase(); //3.转账,将李四的钱减200,张三加200...package com.itheima.transtation.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase...; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper..."bank.db", null, 1); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase...("insert into account ('name','money') values ('李四','5000')"); } @Override public void onUpgrade(SQLiteDatabase
sqliteDatabase = dbHelper.getReadableDatabase(); //SQLiteDatabase sqliteDatabase = dbHelper.getWritableDatabase...对象对数据库进行操作 SQLiteDatabase sqliteDatabase = dbHelper.getWritableDatabase(); //2....对象对数据库进行操作 SQLiteDatabase sqliteDatabase = dbHelper.getWritableDatabase(); //2....对象对数据库进行操作 SQLiteDatabase sqliteDatabase = dbHelper.getReadableDatabase(); //2....sqliteDatabase = dbHelper.getWritableDatabase(); // SQLiteDatabase sqliteDatabase
一、SQLiteDatabase对象 获取SQLiteDatabase对象可以使用SQLiteOpenHelper或者使用静态方法获取(具体内容可以参考开发手册) //使用SQLiteOpenHelper...可以获取 DatabaseHelper dbHelper = new DatabaseHelper(Sqlite.this, “sqlite_joyous_db”); SQLiteDatabase db...= dbHelper.getReadableDatabase(); //或者使用静态方法获取 SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase...移动指针到最后一行 moveToNext()移动指针到下一行 具体使用可以参考开发手册 三、示例 创建表语句: create table user(id int,name varchar(20)) 查询 SQLiteDatabase...db = SQLiteDatabase.openOrCreateDatabase(“/data/data/study.sqlite/databases/sqlite_joyous_db”, null)
sqliteDatabase = dbHelper.getWritableDatabase(); // 创建 or 打开 可读/写的数据库 SQLiteDatabase sqliteDatabase...sqliteDatabase = dbHelper.getWritableDatabase(); // SQLiteDatabase sqliteDatabase...sqliteDatabase_upgrade = dbHelper_upgrade.getWritableDatabase(); // SQLiteDatabase...sqliteDatabase4 = dbHelper4.getReadableDatabase(); // 调用SQLiteDatabase对象的query方法进行查询...对象 SQLiteDatabase sqliteDatabase2 = dbHelper2.getWritableDatabase();
com.example.android.waitlist.data; import android.content.Context; import android.database.sqlite.SQLiteDatabase...sqLiteDatabase) { // COMPLETED (6) Inside, create an String query called SQL_CREATE_WAITLIST_TABLE...and pass the string query SQL_CREATE_WAITLIST_TABLE sqLiteDatabase.execSQL(SQL_CREATE_WAITLIST_TABLE...sqLiteDatabase, int i, int i1) { // For now simply drop the table and create a new one....("DROP TABLE IF EXISTS " + WaitlistEntry.TABLE_NAME); onCreate(sqLiteDatabase); } } 更新数据库
/www.jianshu.com/p/5c33be6ce89d http://blog.csdn.net/codeeer/article/details/30237597/ 目录 SQLite的介绍 SQLiteDatabase...---- 2.SQLiteDatabase的介绍 常用方法: 方法 释义 openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory...sqLiteDatabase) { // 调用时间:数据库第一次创建时onCreate()方法会被调用 // onCreate方法有一个 SQLiteDatabase...(sql); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion,...(sql); onCreate(sqLiteDatabase); } 3.2.
看SQLiteDatabase开启WAL的核心方法源码。...并在注释中给出了实例代码如下: SQLiteDatabase db = SQLiteDatabase.openDatabase("db_filename", cursorFactory,CREATE_IF_NECESSARY...如何手动执行checkpoint,看SQLiteDatabase.endTransaction源码: /** * End a transaction. ... factory, int flags, DatabaseErrorHandler errorHandler) { SQLiteDatabase sqliteDatabase...>(sqliteDatabase)); } return sqliteDatabase; } 通过sqliteDatabase.setJournalMode(path
; import net.sqlcipher.database.SQLiteDatabase.CursorFactory; import net.sqlcipher.database.SQLiteOpenHelper...db) { db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int arg1,...的loadLibs()静态方法将SQLCipher所依赖的so库加载进来,注意这里使用的是net.sqlcipher.database包下的SQLiteDatabase。...然后我们创建了MyDatabaseHelper的实例,并调用getWritableDatabase()方法去获取SQLiteDatabase对象。...在添加数据按钮的点击事件里面,我们通过ContentValues构建了一条数据,然后调用SQLiteDatabase的insert()方法将这条数据插入到Book表中。
name, factory, version); mContext = context; } @Override public void onCreate(SQLiteDatabase...mContext, "Create succeeded", Toast.LENGTH_SHORT).show(); } @Override public void onUpgrade(SQLiteDatabase...name, factory, version); mContext = context; } @Override public void onCreate(SQLiteDatabase...SQLiteOpenHelper的两个实例方法getReadableDatabase()/getWritableDatabase() 会返回SQLiteDatabase对象, 借助这个对象就可对数据进行...Vinci Code"}); } }); 上述代码表达的意图将name为The Da Vinci Code的这本书的价格改成10.99; 删除数据 直接用SQLiteDatabase
SQLiteDatabase ; 导入android。数据库。sqlite。SQLiteOpenHelper ; 导入android。数据库。sqlite。SQLiteDatabase。...close () ; } } @ 覆写 公共无效onCreate (SQLiteDatabase arg0) { }...@ 覆写 public void onUpgrade (SQLiteDatabase arg0, int arg1, int arg2) { } } / *...close () ; } 公共无效createTable (SQLiteDatabase db) { db。...execSQL (sql_3) ; } 公共无效queryTable (SQLiteDatabase db) { 字符串 str = “ select *
Thread 1 Context context = getApplicationContext(); DatabaseHelper helper = new DatabaseHelper(context); SQLiteDatabase...java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase 由于我们只使用了一个数据库连接...,Thread1 和 Thread2 的 getDatabase() 方法都会返回同一个 SQLiteDatabase 对象实例。...stackoveflow 上有人推荐永远不要关闭你的 SQLiteDatabase。这会让你看到下面的 logcat 信息。所以我一点也不认为这是一个好的想法。...SQLiteDatabase database = DatabaseManager.getInstance().openDatabase();database.insert(...);// database.close
context) { super(context, "itcast.db", null, 1); } @Override public void onCreate(SQLiteDatabase...AUTOINCREMENT, name VARCHAR(20), phone VARCHAR(20))"); } @Override public void onUpgrade(SQLiteDatabase...db, int oldVersion, int newVersion) { } } 数据的增加 SQLiteDatabase db;...Toast.makeText(this,"添加成功",Toast.LENGTH_SHORT).show();//吐司 db.close(); 数据的查询 SQLiteDatabase...+" tel:"+cursor.getString(cursor.getColumnIndex("phone"))); } 数据的修改 SQLiteDatabase
, DATABASE_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase...TABLE IF EXISTS " + TABLE_NAME; db.execSQL(sql); onCreate(db); } public Cursor select() { SQLiteDatabase...TABLE_NAME, null, null, null, null, null, null); return cursor; } public long insert(String text) { SQLiteDatabase...text); long row = db.insert(TABLE_NAME, null, cv); return row; } public void delete(int id) { SQLiteDatabase...id) }; db.delete(TABLE_NAME, where, whereValue); } public void update(int id, String text) { SQLiteDatabase
SQLiteCache``` 其实内部也是进行了一层的alias```public typealias SQLiteCache = DatabaseKeyedCache<ConfiguredDatabase<SQLiteDatabase...于是就有了FluentSQLiteProvider文件中的 public typealias SQLiteCache = DatabaseKeyedCache> extension SQLiteDatabase: KeyedCacheSupporting { } 至此我们大致就了解db最为cache需要的条件了,之余具体实现我们不深究啦。...>: Model where Database: QuerySupporting 看来猜测还是挺准确的 接下来就是老套路啦 migrations.add(model: CacheEntry<SQLiteDatabase
领取专属 10元无门槛券
手把手带您无忧上云