32.Android SQLite 及其更新
Android SQLite 介绍
Android上SQLite用起来,相比IOS的SQLite,显得麻烦一些。
SQLite最大的问题就是表的维护(表的升级:添加字段等等)。
这次也是着重谈谈SQLite的维护。
Android SQLite 继承SQLiteOpenHelper
extends SQLiteOpenHelper
定义一个子类继承抽象类SQLiteOpenHelper。
Android SQLite 创建表
在子类的的onCreate方法里执行对应的sql语句。
public static final String TB_CAMNTER_SQL = "CREATE TABLE IF NOT EXISTS " + TB_CAMNTER + "(_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," +
" content text)";
/**
* Called when the database is created for the first time. This is where the
* creation of tables and the initial population of the tables should happen.
* 首次创建数据库时调用。这就是创建表和表的初始种群。
*
* @param db The database.
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TB_CAMNTER_SQL);
}
Android SQLite 增
/**
* 保存数据
*
* @param content
*/
public void insert(String content) {
SQLiteDatabase insert = this.getWritableDatabase();
insert.beginTransaction();
ContentValues values = new ContentValues();
values.put("content", content);
insert.insert(TB_CAMNTER, "", values);
/**
* 设置事务处理成功,不设置会自动回滚不提交
*/
insert.setTransactionSuccessful();
/**
* 处理完成
*/
insert.endTransaction();
}
Android SQLite 删
/**
* 删除数据
*/
public void deleteAll() {
SQLiteDatabase deleteAll = this.getWritableDatabase();
deleteAll.delete(TB_CAMNTER, null, null);
deleteAll.close();
}
Android SQLite 改
/**
* 修改第一条数据
*/
public void updateFirst() {
List<SQLiteData> allData = this.queryAll();
if (allData == null || allData.size() < 1) return;
int firstId = allData.get(0).id;
SQLiteDatabase update = this.getWritableDatabase();
update.beginTransaction();
ContentValues values = new ContentValues();
values.put("content"</