在Android中使用数据库时,会创建一个类继承SQLiteOpenHelper类,在这个类封装数据的增删改查操作,自己写了一个复习了一下

 

需要注意是在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.     }