SQLiteOpenHelper的正确使用

来源:互联网 发布:java rss全文 编辑:程序博客网 时间:2024/04/29 21:06

http://www.iteye.com/topic/573261

SQLiteDatabase

 

[功能]

SQLiteDatabase 是关于数据库操作的 可用于 insert delete update query 等操作 可惜美中不足的是:

1. 其不支持创建数据库

2. 其不支持版本更新 或者说其不知道如何做 因为具体数据的差异

 

鉴于以上的缺陷 有一个辅助类可以完成上面功能 那就是:SQLiteOpenHelper

 

 

[代码]

1. 定义SQLiteOpenHelper 并完成 创建 更新 功能

Java代码  收藏代码
  1. public class DBHelper extends SQLiteOpenHelper {  
  2.       
  3.     public static final String TB_NAME = "mycountry";  
  4.     public static final String ID = "_id";  
  5.     public static final String COUNTRY = "country";  
  6.     public static final String CODE = "code";  
  7.       
  8.       
  9.     public DBHelper(Context context, String name,   
  10.             CursorFactory factory,int version) {  
  11.         super(context, name, factory, version);  
  12.     }  
  13.   
  14.     public void onCreate(SQLiteDatabase db) {  
  15.           
  16.         db.execSQL("CREATE TABLE IF NOT EXISTS "   
  17.                 + TB_NAME + " ("   
  18.                 + ID + " INTEGER PRIMARY KEY,"   
  19.                 + COUNTRY + " VARCHAR,"  
  20.                 + CODE + " INTEGER)");  
  21.     }  
  22.   
  23.     public void onUpgrade(SQLiteDatabase db,   
  24.             int oldVersion, int newVersion) {  
  25.           
  26.         db.execSQL("DROP TABLE IF EXISTS "+TB_NAME);  
  27.         onCreate(db);  
  28.     }  
  29. }  

 

 

 

 

2. 从SQLiteOpenHelper 得到SQLiteDatabase的实例

Java代码  收藏代码
  1. DBHelper helper = new DBHelper(this, DB_NAME, null, VERSION);  
  2.   
  3. SQLiteDatabase db = helper.getWritableDatabase();  

 

 

 

3. SQLiteDatabase 的一些操作:

* 插入数据:

Java代码  收藏代码
  1. ContentValues values = new ContentValues();  
  2.         values.put(DBHelper.COUNTRY, "中国");  
  3.         values.put(DBHelper.CODE, 86);  
  4.         db.insert(DBHelper.TB_NAME,DBHelper.ID, values);  

 

 

* 改动数据

Java代码  收藏代码
  1. db.insert(DBHelper.TB_NAME,DBHelper.ID,null);  
  2.         values.clear();  
  3.         values.put(DBHelper.COUNTRY, "意大利");  
  4.         values.put(DBHelper.CODE, 39);  
  5.         db.update(DBHelper.TB_NAME, values,DBHelper.ID + " = 2",null);  

 

* execSQL 执行SQL语言

Java代码  收藏代码
  1. db.execSQL("INSERT INTO "  
  2.                 + DBHelper.TB_NAME + "("  
  3.                 + DBHelper.COUNTRY + ","  
  4.                 + DBHelper.CODE + ") VALUES "  
  5.                 + "('洪都拉斯',504)");  

 

* 查询数据

Java代码  收藏代码
  1. Cursor c = db.query(DBHelper.TB_NAME,null,null,null,null,null,  
  2.                 DBHelper.CODE+" DESC");  

 

* 删除数据所有数据

Java代码  收藏代码
  1. db.delete(DBHelper.TB_NAME,null,null);  

 

 

 

 

done!

0 0
原创粉丝点击