android存储-sqlite
来源:互联网 发布:网络规划与设计题库 编辑:程序博客网 时间:2024/06/06 14:23
sqlite是安卓内置的轻量级关系型数据库,它支持sql语句,适合存储大量复杂数据。
SQLiteOpenHelper抽象类用于创建和升级数据库,我们可以创建一个类去继承它,重写两个方法
@Override
public void onCreate(SQLiteDatabase db) {
//创建数据库
db.execSQL("这里可以写sql语句,比如创建一个表");
}
//升级
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//当构造方法出的version变大时会自动调此方法
//每次升级数据库只需更改sql和case,不加break
switch(oldVersion){
case 1:
db.execSQL("");
case 2:
db.execSQL("");
default:
}
}
public MyDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
SQLiteOpenHelper对象创建或打开数据库可以用getReadableDatabase或getWriteableDatabase,若数据库不
存在则会创建,这两种方法返回的对象都可读写,区别在于当数据库不可写入时getWriteableDatabase会
抛异常,而getReadableDatabase则会以只读的方式打开数据库
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this, "my.db", null, 1);
dbHelper.getWritableDatabase();
接下来就是增删改查操作了,和contentProvider很像
增:ContentValues values = new ContentValues();
values.put("name", "aaa");
db.insert("my", null, values);
改:ContentValues values = new ContentValues();
values.put("name", "bbb");
db.update("my", values, "name=?", new String[]{"aaa"});
删:db.delete(table, whereClause, whereArgs)
查:Cursor cursor = db.query("my",null,null,null,null,null,null,null);
//db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
if(cursor.moveToFirst()){
do{
String name = cursor.getString(cursor.getColumnIndex("name"));
} while(cursor.moveToNext());
}
cursor.close();
SQLiteOpenHelper抽象类用于创建和升级数据库,我们可以创建一个类去继承它,重写两个方法
@Override
public void onCreate(SQLiteDatabase db) {
//创建数据库
db.execSQL("这里可以写sql语句,比如创建一个表");
}
//升级
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//当构造方法出的version变大时会自动调此方法
//每次升级数据库只需更改sql和case,不加break
switch(oldVersion){
case 1:
db.execSQL("");
case 2:
db.execSQL("");
default:
}
}
public MyDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
SQLiteOpenHelper对象创建或打开数据库可以用getReadableDatabase或getWriteableDatabase,若数据库不
存在则会创建,这两种方法返回的对象都可读写,区别在于当数据库不可写入时getWriteableDatabase会
抛异常,而getReadableDatabase则会以只读的方式打开数据库
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this, "my.db", null, 1);
dbHelper.getWritableDatabase();
接下来就是增删改查操作了,和contentProvider很像
增:ContentValues values = new ContentValues();
values.put("name", "aaa");
db.insert("my", null, values);
改:ContentValues values = new ContentValues();
values.put("name", "bbb");
db.update("my", values, "name=?", new String[]{"aaa"});
删:db.delete(table, whereClause, whereArgs)
查:Cursor cursor = db.query("my",null,null,null,null,null,null,null);
//db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
if(cursor.moveToFirst()){
do{
String name = cursor.getString(cursor.getColumnIndex("name"));
} while(cursor.moveToNext());
}
cursor.close();
0 0
- Android之SQlite存储
- Android之SQlite存储
- Android之SQlite存储
- Android之SQlite存储
- Android之Sqlite存储
- Android之SQlite存储
- Android之SQlite存储
- android数据存储--SQLite
- Android 数据库存储 SQLite
- Android数据存储---SQLite
- android存储---sqlite浅谈
- Android数据存储-SQLite
- Android存储之SQLite
- android sqlite 存储图片
- android-数据存储sqlite
- Android -SQLite数据库存储
- Android存储-SQLite
- Android SQLite数据库存储
- Android汉字转拼音HanziToPinyin实测可用版
- vector::clear()和vecotr::pop_back()对内存处理的不同 http://blog.csdn.net/vieri_ch/article/details/1191390
- 关于__stack_chk_guard_ptr的理解
- LeetCode_3_LongestSubstringWithoutRepeatingCharacters(Java Code)
- EasyUI闪屏,EasyUI页面加载提示:原理+代码+效果图
- android存储-sqlite
- Swift引用OC代码(导入FMDB库)
- JS简单粗暴地实现浅克隆
- Windows - 卸载一键工作室急救箱
- android菜单栏Menu
- 删除vector容器中的对象元素的三种方法:pop_back, erase与remove算法http://www.xuebuyuan.com/1407838.html
- Theano-Deep Learning Tutorials 笔记:Modeling and generating sequences of polyphonic music with the RNN
- 二叉树——基本概念
- android-webview