锁定老帖子 主题:SQLiteDatabase 使用
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-18
SQLiteDatabase
[功能] SQLiteDatabase 是关于数据库操作的 可用于 insert delete update query 等操作 可惜美中不足的是: 1. 其不支持创建数据库 2. 其不支持版本更新 或者说其不知道如何做 因为具体数据的差异
鉴于以上的缺陷 有一个辅助类可以完成上面功能 那就是:SQLiteOpenHelper
[代码] 1. 定义SQLiteOpenHelper 并完成 创建 更新 功能 public class DBHelper extends SQLiteOpenHelper { public static final String TB_NAME = "mycountry"; public static final String ID = "_id"; public static final String COUNTRY = "country"; public static final String CODE = "code"; public DBHelper(Context context, String name, CursorFactory factory,int version) { super(context, name, factory, version); } public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS " + TB_NAME + " (" + ID + " INTEGER PRIMARY KEY," + COUNTRY + " VARCHAR," + CODE + " INTEGER)"); } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS "+TB_NAME); onCreate(db); } }
2. 从SQLiteOpenHelper 得到SQLiteDatabase的实例 DBHelper helper = new DBHelper(this, DB_NAME, null, VERSION); SQLiteDatabase db = helper.getWritableDatabase();
3. SQLiteDatabase 的一些操作: * 插入数据: ContentValues values = new ContentValues(); 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);
done! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-21
用otl的漂过。。
|
|
返回顶楼 | |
发表时间:2010-01-23
zzsczz 写道 用otl的漂过。。
no idea on this~~~ |
|
返回顶楼 | |
发表时间:2010-01-25
请问您的Android开发环境是怎么搭建的,下面这些包/类来自那里啊
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; 谢谢! |
|
返回顶楼 | |
发表时间:2010-01-25
wuliupo 写道 请问您的Android开发环境是怎么搭建的,下面这些包/类来自那里啊
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; 谢谢! wuliupo 写道 请问您的Android开发环境是怎么搭建的,下面这些包/类来自那里啊
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; 谢谢! 我的环境与程序 设定: 1. sdk: android-sdk-windows-1.5_r2 2. Build target: Android 1.5 |
|
返回顶楼 | |
发表时间:2010-03-04
SQLiteDatabase.openOrCreateDatabase()这个方法不是可以创建数据库么,那么
SQLiteOpenHelper和SQLiteDatabase的主要区别是什么啊? |
|
返回顶楼 | |
发表时间:2010-03-04
SQLiteOpenHelper
1002840471 写道 SQLiteDatabase.openOrCreateDatabase()这个方法不是可以创建数据库么,那么
SQLiteOpenHelper和SQLiteDatabase的主要区别是什么啊? SQLiteDatabase 自身提供了对数据库进行 增加 删除 更新 等操作的接口 但是也存在一些不足 比如: 1. 不支持创建数据库 2. 数据库版本升级 没有办法 因为数据各种各样 依赖于自己的实现 而SQLiteOpenHelper就弥补上述不足 个人感觉: SQLiteDatabase 提供了数据操作的接口 SQLiteOpenHelper 干一些打杂工作 仅限个人理解 |
|
返回顶楼 | |
发表时间:2010-04-24
多谢lz提供的源码,顺便指出一下, 源码的xml有一个笔误:
EditTex 少了一个t(EditTexT) |
|
返回顶楼 | |
发表时间:2010-05-11
怎么连接 远程 数据库啊,比如 PC机上的 mysql数据库,用wifi连接网络??
|
|
返回顶楼 | |
发表时间:2010-05-14
我很好奇的问问sqlite里的模糊查询,如何做?
我写 query(tableName,null,"subject like '%?%'","9",null,null,null) query(tableName,null,"subject like ?","%9%",null,null,null) query(tableName,null,"subject like %?%","9",null,null,null) 都被报了sqliteException:snytax error~ |
|
返回顶楼 | |