先声明,这篇文章也是以前写的,这里只是把该文章从另一个账号搬过来
关于SQLite使用其实并没有什么难点,感觉主要是有时候可能长时间不用会对其创建数据库以及增删改查的一些语法容易忘记,而每当要使用的时候都需要去查资料,而且还不能保证立马就查到自己想要的,所以就决定写这篇文章,记录一下SQLite的创建以及增删改查的一些基本语句,以便日后需要的时候可以第一时间找到自己想要的资料,而且自己记录一遍更能加深印象,所以有时间的话建议大家都可以写写博客,坚持下来,还是会有很大收获的。
1. 什么情况下使用SQLite数据库存储 ?
关于SQLite存储数据,我之前一直比较疑惑,也没有去深究过,到底使用SQLite存储数据有什么优势。现在个人觉得使用SQLite存储的好处主要是可以实现查询功能,比如我们做一个便签APP,把写的内容存储在SQLite中,就可以实现模糊查询查找自己想要的内容。还有对于数据较多的也可以使用SQLite存储,对于一些方便以表形式存储的数据用SQLite存储也很方便,目前而言自己发现的优点主要有这几点。如果有不正确或者还有其他的优点欢迎各位大佬指出。
2. 如何创建一个SQLite数据库 ?
创建SQLite数据库有三种方式:
- 继承SQLiteOpenHelper
- Context.openOrCreateDatabase()
- SQLiteDatabase.openOrCreateDatabase()
接下来看一下这三种方式的实现代码:
2.1 继承SQLiteOpenHelper(优点:可以在升级数据库版本的时候在回调函数里面做相应的操作)
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
//自定义构造器
public MySQLiteOpenHelper(Context context,String name){
this(context,name,null,1);
}
/**
* Const.TABNAME(表名) content(字段名) id(主键)
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
//在创建数据库时,创建一个数据表table
String sql = "create table if not exists "+Const.TABNAME+"(id integer primary key autoincrement,content text,time text )";
db.execSQL(sql);
}
/**
* 数据库升级更新时调用
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
创建好了数据库帮助类之后我们需要用它来帮我们创建数据库,通过下面代码我们就创建好了数据库
//创建数据库
mMySQLiteOpenHelper = new MySQLiteOpenHelper(getApplicationContext(), "note.db");
mSqLiteDatabase = mMySQLiteOpenHelper.getWritableDatabase();
2.2 Context.openOrCreateDatabase()(优点:可以指定数据库文件的操作模式)
代码如下:
/**指定数据库的名称为note.db,并指定数据文件的操作模式为MODE_PRIVATE**/
SQLiteDatabase sqLiteDatabase = this.openOrCreateDatabase(