關於用SqliteOpenHelper進行建立數據庫

 在Android中使用數據庫時,會建立一個類繼承SQLiteOpenHelper類,在這個類封裝數據的增刪改查操做,本身寫了一個複習了一下sql

 

須要注意是在MyDBHelper的構造函數的時候,並無真正的建立數據庫, 真正建立數據庫,是在調用SQliteOpenHelper的getWritableDatabase( )和getReadableDatabase()方法的時候。再加一個判斷數據庫是否被刪除的方法
 
 
  
  
  
  
  1. /** 
  2.  * @auther xiang1988 
  3.  * @param pacageName 程序包名 
  4.  * @param dbName  數據庫的名字 
  5.  * @return 
  6.  */ 
  7. public static  boolean databaseExist(String pacageName,String dbName) { 
  8.     File dbFile = new File("/data/data/"+pacageName+"/databases/"+dbName+".db"); 
  9.     return dbFile.exists(); 
  10. /** 
  11.  *數據庫操做類   
  12.  **/ 
  13. public class MyDBHelper extends SQLiteOpenHelper { 
  14.     private static final String TB_NAME = "TimeTB"
  15.     private SQLiteDatabase  dataBase; 
  16.     public MyDBHelper(Context context, String name, CursorFactory factory, 
  17.             int version) { 
  18.         super(context, name, factory, version); 
  19.         // TODO Auto-generated constructor stub 
  20.     } 
  21.     @Override 
  22.     public void onCreate(SQLiteDatabase db) { 
  23.         // TODO Auto-generated method stub 
  24.         /** 
  25.          * 進行建立表的操做 
  26.          *  
  27.          */ 
  28.         String sql = "create table " +TB_NAME+" ( id INTEGER PRIMARY KEY AUTOINCREMENT,  name  VARCHAR(36), time INTEGER)"; 
  29.         db.execSQL(sql); 
  30.     } 
  31.     @Override 
  32.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
  33.         // TODO Auto-generated method stub 
  34.         /** 
  35.          * 進行數據庫的升級操做 
  36.          *  
  37.          */ 
  38.     } 
  39.     /** 
  40.      * 開啓數據庫 
  41.      */ 
  42.     public void openDB(){ 
  43.         //此處獲取數據的操做,若是數據庫存在,則拿到引用,若是不存在,就會建立一個空白的數據庫 
  44.         dataBase=getWritableDatabase(); 
  45.  
  46.  
  47.     } 
  48.     /** 
  49.      * 關閉數據 
  50.      */ 
  51.     public void closeDB(){ 
  52.  
  53.         dataBase.close(); 
  54.     } 
  55.  
  56.     /** 
  57.      * 插入數據 
  58.      * @param name 
  59.      * @param time 
  60.      */ 
  61.     public void insertData(String name,int time){ 
  62.         ContentValues  value=new ContentValues(); 
  63.         value.put("name", name); 
  64.         value.put("time", time); 
  65.         dataBase.insert(TB_NAME, null, value); 
  66.  
  67.     } 
  68.     /** 
  69.      * 刪除數據數據 
  70.      * @param name 
  71.      * @param time 
  72.      */ 
  73.     public void deleteDataByName(String name){ 
  74.  
  75.         dataBase.delete(TB_NAME, "name =?", new String[]{name}); 
  76.  
  77.     } 
  78.     /** 
  79.      * 一個查詢數據庫的操做 
  80.      * @return 
  81.      */ 
  82.     public ArrayList<Integer> queryData() { 
  83.  
  84.         SQLiteDatabase db = getWritableDatabase(); 
  85.         ArrayList<Integer> list = new ArrayList<Integer>(); 
  86.         Cursor cursor = db.query(TB_NAME, new String[] { "time" }, null, null, 
  87.                 null, null, null); 
  88.         cursor.moveToNext(); 
  89.         while (cursor.moveToNext()) { 
  90.             list.add(cursor.getInt(cursor.getColumnIndex("time"))); 
  91.         } 
  92.         cursor.close(); 
  93.         db.close(); 
  94.         return list; 
  95.     } 
相關文章
相關標籤/搜索