在Android中使用数据库时,会创建一个类继承SQLiteOpenHelper类,在这个类封装数据的增删改查操作,自己写了一个复习了一下
需要注意是在MyDBHelper的构造函数的时候,并没有真正的创建数据库,
真正创建数据库,是在调用SQliteOpenHelper的getWritableDatabase( )和getReadableDatabase()方法的时候。再加一个判断数据库是否被删除的方法
- /**
- * @auther xiang1988
- * @param pacageName 程序包名
- * @param dbName 数据库的名字
- * @return
- */
- public static boolean databaseExist(String pacageName,String dbName) {
- File dbFile = new File("/data/data/"+pacageName+"/databases/"+dbName+".db");
- return dbFile.exists();
- }
- /**
- *数据库操作类
- **/
- public class MyDBHelper extends SQLiteOpenHelper {
- private static final String TB_NAME = "TimeTB";
- private SQLiteDatabase dataBase;
- public MyDBHelper(Context context, String name, CursorFactory factory,
- int version) {
- super(context, name, factory, version);
- // TODO Auto-generated constructor stub
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- // TODO Auto-generated method stub
- /**
- * 进行创建表的操作
- *
- */
- String sql = "create table " +TB_NAME+" ( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(36), time INTEGER)";
- db.execSQL(sql);
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- // TODO Auto-generated method stub
- /**
- * 进行数据库的升级操作
- *
- */
- }
- /**
- * 开启数据库
- */
- public void openDB(){
- //此处获取数据的操作,如果数据库存在,则拿到引用,如果不存在,就会创建一个空白的数据库
- dataBase=getWritableDatabase();
- }
- /**
- * 关闭数据
- */
- public void closeDB(){
- dataBase.close();
- }
- /**
- * 插入数据
- * @param name
- * @param time
- */
- public void insertData(String name,int time){
- ContentValues value=new ContentValues();
- value.put("name", name);
- value.put("time", time);
- dataBase.insert(TB_NAME, null, value);
- }
- /**
- * 删除数据数据
- * @param name
- * @param time
- */
- public void deleteDataByName(String name){
- dataBase.delete(TB_NAME, "name =?", new String[]{name});
- }
- /**
- * 一个查询数据库的操作
- * @return
- */
- public ArrayList<Integer> queryData() {
- SQLiteDatabase db = getWritableDatabase();
- ArrayList<Integer> list = new ArrayList<Integer>();
- Cursor cursor = db.query(TB_NAME, new String[] { "time" }, null, null,
- null, null, null);
- cursor.moveToNext();
- while (cursor.moveToNext()) {
- list.add(cursor.getInt(cursor.getColumnIndex("time")));
- }
- cursor.close();
- db.close();
- return list;
- }
- }
转载于:https://blog.51cto.com/vincenttung/1141066