Android數據存儲之SQLite

    Android中的數據庫採用的是SQLite,這是一款輕型數據庫,佔用資源雖小但是功能強大,能滿足系統中的各種數據操作。它不僅可以支持通過SQL語句操作,同時也可以通過SQLiteDatabase對象中的各種方法來操作數據庫。

    在數據庫編程中,常常使用一個繼承自SQLiteOpenHelper類的數據庫操作類,在這個類封裝了一些關於數據庫生命週期的方法,可以更加方便的使用數據庫。代碼如下:

 
 

  1. public class myDatabase {  
  2.       
  3.      static final String USERID="_id";  
  4.      static final String PASSWORD="password";  
  5.      static final String EMAIL="email";  
  6.      static final String QQ="qq";  
  7.      static final String CAREER="career";  
  8.      static final String DB_NAME="myDatabase1";  
  9.      static final String DB_TABLE="imfor";  
  10.     private static final int VERSION=1;  
  11.     private Context mContext;  
  12.     SQLiteDatabase mySQLite;  
  13.       
  14. private static  String DB_CREATE="CREATE TABLE " +DB_TABLE+" (" +USERID+" INTEGER PRIMARY KEY," 
  15. +PASSWORD+" TEXT," 
  16. +EMAIL+" TEXT," 
  17. +QQ+" TEXT," 
  18. +CAREER+" TEXT)";  
  19.       
  20.     //靜態類MyHelper繼承SQLiteOpenHelper,用於創建數據庫。   
  21.     private static class MyHelper extends SQLiteOpenHelper{  
  22.  
  23.         public MyHelper(Context context) {  
  24.             super(context, DB_NAME, null, VERSION);  
  25.             // TODO Auto-generated constructor stub  
  26.         }  
  27.  
  28.         @Override 
  29.         public void onCreate(SQLiteDatabase db) {  
  30.             // TODO Auto-generated method stub  
  31.             db.execSQL(DB_CREATE);  
  32.         }  
  33.  
  34.         @Override 
  35.         public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  36.             // TODO Auto-generated method stub  
  37.               
  38.         }  
  39.                           
  40.     }  
  41.       
  42.     //MyDataBase類的構造方法,參數是一個上下文對象  
  43.     public myDatabase(Context context){  
  44.         mContext=context;  
  45.                                       }  
  46.     //打開數據庫
  47.     public void openDatabase(){  
  48.         MyHelper myhelper=new MyHelper(mContext);
  49. //這時創建或打開數據庫,如果數據庫是新創建的則激活SQLiteOpenHelper對象的的onCreate()方法  
  50.         mySQLite=myhelper.getWritableDatabase();      
  51.                               }  
  52.     //插入數據  
  53.     public long insert(int id,String password,String email,String qq,String career){  
  54.         ContentValues cv=new ContentValues();  
  55.         cv.put(USERID, id);  
  56.         cv.put(PASSWORD, password);  
  57.         cv.put(EMAIL, email);  
  58.         cv.put(QQ, qq);  
  59.         cv.put(CAREER, career);  
  60.         return mySQLite.insert(DB_TABLE, "null",cv);  
  61.     }  
  62.     //查詢數據  
  63.     public Cursor fetchData(int id){  
  64.                   
  65. return mySQLite.query(DB_TABLE, new String[] {USERID,PASSWORD,EMAIL,QQ,CAREER}, USERID+"="+id, nullnullnullnull);  
  66.                                    }  

    在上面的這個myDataBase類中定義了繼承於SQLiteOpenHelper類的內部類,用於創建數據庫相關操作。另外又定義了兩個數據庫的操作方法,插入數據和查詢數據。關於這些基本的數據庫操作一方面可以直接調用數據庫對象的execSQL(String)方法,將SQL語句作爲參數。另外數據庫對象中又定義了一些方法,通過SDK文檔可以方便的查詢以便使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章