android存储-sqlite
2016-02-21 11:01
701 查看
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();
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories