android SQLiteDatabase
2016-03-14 00:00
489 查看
转载地址:
http://blog.sina.com.cn/s/blog_6fff321b0100onw8.html
SQLiteDatabase
[功能]
SQLiteDatabase 是关于数据库操作的 可用于 insert delete update query等操作可惜美中不足的是:
1. 其不支持创建数据库
2. 其不支持版本更新 或者说其不知道如何做 因为具体数据的差异
鉴于以上的缺陷 有一个辅助类可以完成上面功能 那就是:SQLiteOpenHelper
[代码]
1. 定义SQLiteOpenHelper 并完成 创建 更新 功能
publicclassDBHelper extendsSQLiteOpenHelper {
publicstaticfinalString TB_NAME = "mycountry";
publicstaticfinalString ID = "_id";
publicstaticfinalString COUNTRY = "country";
publicstaticfinalString CODE = "code";
publicDBHelper(Context context, String name,
CursorFactory factory,intversion) {
super(context, name, factory, version);
}
publicvoidonCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS "
+ TB_NAME + " ("
+ ID + " INTEGER PRIMARY KEY,"
+ COUNTRY + " VARCHAR,"
+ CODE + " INTEGER)");
}
publicvoidonUpgrade(SQLiteDatabase db,
intoldVersion, intnewVersion) {
//TODO删除数据库之前 做数据备份
db.execSQL("DROP TABLE IF EXISTS "+TB_NAME);
onCreate(db);
}
}
2. 从SQLiteOpenHelper 得到SQLiteDatabase的实例
DBHelper helper = newDBHelper(this, DB_NAME, null, VERSION);
SQLiteDatabase db = helper.getWritableDatabase();
3. SQLiteDatabase 的一些操作:
* 插入数据:
ContentValues values = newContentValues();
values.put(DBHelper.COUNTRY, "中国");
values.put(DBHelper.CODE, 86);
db.insert(DBHelper.TB_NAME,DBHelper.ID, values);
* 改动数据
db.insert(DBHelper.TB_NAME,DBHelper.ID,null);
values.clear();
values.put(DBHelper.COUNTRY, "意大利");
values.put(DBHelper.CODE, 39);
db.update(DBHelper.TB_NAME, values,DBHelper.ID + " = 2",null);
* execSQL 执行SQL语言
db.execSQL("INSERT INTO "
+ DBHelper.TB_NAME + "("
+ DBHelper.COUNTRY + ","
+ DBHelper.CODE + ") VALUES "
+ "('洪都拉斯',504)");
* 查询数据
Cursor c = db.query(DBHelper.TB_NAME,null,null,null,null,null,
DBHelper.CODE+" DESC");
* 删除数据所有数据
db.delete(DBHelper.TB_NAME,null,null);
数据库的生成 调用 getWiterAbleDatabase getReadAbleDatabase生成数据库i
android 嵌入式数据库 为单用户数据库 所以 可以不调用db.close()来关闭数据库这样反而可以提高性能
http://blog.sina.com.cn/s/blog_6fff321b0100onw8.html
SQLiteDatabase
[功能]
SQLiteDatabase 是关于数据库操作的 可用于 insert delete update query等操作可惜美中不足的是:
1. 其不支持创建数据库
2. 其不支持版本更新 或者说其不知道如何做 因为具体数据的差异
鉴于以上的缺陷 有一个辅助类可以完成上面功能 那就是:SQLiteOpenHelper
[代码]
1. 定义SQLiteOpenHelper 并完成 创建 更新 功能
publicclassDBHelper extendsSQLiteOpenHelper {
publicstaticfinalString TB_NAME = "mycountry";
publicstaticfinalString ID = "_id";
publicstaticfinalString COUNTRY = "country";
publicstaticfinalString CODE = "code";
publicDBHelper(Context context, String name,
CursorFactory factory,intversion) {
super(context, name, factory, version);
}
publicvoidonCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS "
+ TB_NAME + " ("
+ ID + " INTEGER PRIMARY KEY,"
+ COUNTRY + " VARCHAR,"
+ CODE + " INTEGER)");
}
publicvoidonUpgrade(SQLiteDatabase db,
intoldVersion, intnewVersion) {
//TODO删除数据库之前 做数据备份
db.execSQL("DROP TABLE IF EXISTS "+TB_NAME);
onCreate(db);
}
}
2. 从SQLiteOpenHelper 得到SQLiteDatabase的实例
DBHelper helper = newDBHelper(this, DB_NAME, null, VERSION);
SQLiteDatabase db = helper.getWritableDatabase();
3. SQLiteDatabase 的一些操作:
* 插入数据:
ContentValues values = newContentValues();
values.put(DBHelper.COUNTRY, "中国");
values.put(DBHelper.CODE, 86);
db.insert(DBHelper.TB_NAME,DBHelper.ID, values);
* 改动数据
db.insert(DBHelper.TB_NAME,DBHelper.ID,null);
values.clear();
values.put(DBHelper.COUNTRY, "意大利");
values.put(DBHelper.CODE, 39);
db.update(DBHelper.TB_NAME, values,DBHelper.ID + " = 2",null);
* execSQL 执行SQL语言
db.execSQL("INSERT INTO "
+ DBHelper.TB_NAME + "("
+ DBHelper.COUNTRY + ","
+ DBHelper.CODE + ") VALUES "
+ "('洪都拉斯',504)");
* 查询数据
Cursor c = db.query(DBHelper.TB_NAME,null,null,null,null,null,
DBHelper.CODE+" DESC");
* 删除数据所有数据
db.delete(DBHelper.TB_NAME,null,null);
数据库的生成 调用 getWiterAbleDatabase getReadAbleDatabase生成数据库i
android 嵌入式数据库 为单用户数据库 所以 可以不调用db.close()来关闭数据库这样反而可以提高性能
相关文章推荐
- android之存储篇_SQLite存储方式 - 一个本科小生的奋斗史 - 博客频道 - CSDN.NET
- 在Android中查看和管理sqlite数据库
- Android开辟进修之SQLite数据存取浅析
- Android SQLiteDatabase的使用
- 认识Android MVP
- Android SQLite数据库SQLiteDatabaseLockedException处理
- Android中RxJava+Retrofit2.0+MVP模式的整合
- Android 蓝牙4.0(ble)开发的解决方案
- 蓝牙4.0在Android中的应用
- android实现文字渐变效果和歌词进度的效果
- Android 剪切板的使用
- Android 侧滑删除 SwipeMenuListView
- Android开发修改系统音量条
- Android使用ViewPager实现导航页根据情况禁止滑动以及点击切换
- android sdk 下载
- AndroidJUnitRunner过滤器与参数使用
- Android 图片压缩
- NDK开发(1)——从无到有
- AndroidStudio 中使用 百度地图 <五> 百度地图的搜索附近的美食,公交站台等,个人摘要
- Android Fragment 真正的完全解析(上)