Bootstrap

watchDog数据库的操作

1.创建数据库
public class WatchDogOpenHelper extends SQLiteOpenHelper {
public static final String DB_NAME=”info”;
public WatchDogOpenHelper(Context context) {
super(context, “watchdog.db”, null, 1);
}

        @Override
        public void onCreate(SQLiteDatabase db) {
            //表中的字段,包名
            db.execSQL("create table "+DB_NAME+"(_id integer primary key autoincrement,packagname varchar(50))");
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }

    }
2.对数据库的操作,复制blacknumdao,修改
    private WatchDogOpenHelper watchDogOpenHelper;

        //获取watchDogOpenhelper
        public WatchDogDao(Context context){
            watchDogOpenHelper = new WatchDogOpenHelper(context);
        }
        //增删改查
        /**
         * 添加包名
         * 
         */
        public void addLockApp(String packagename){
    //      synchronized (b) {
                //1.获取数据库
    //          blackNumOpenhelper.getReadableDatabase();//不加锁,线程不安全,效率比较高,一般用于读取数据
                SQLiteDatabase database = watchDogOpenHelper.getWritableDatabase();//加锁,线程安全,效率比较低,一般用于操作数据库
                //2.添加数据的操作
                ContentValues values = new ContentValues();
                values.put("packagname", packagename);
                //table : 表名
                //nullColumnHack : 如果你传递的数据为null,那就在相应的数据库设置相应的字段为null
                //values : 要添加数据
                database.insert(WatchDogOpenHelper.DB_NAME, null, values);
                //3.关闭数据库
                database.close();
    //      }
        }
        /**
         * 查询应用是否加锁
         */
        public boolean queryLockApp(String packagename){
            boolean isLock=false;
            //1.获取数据库
            SQLiteDatabase database = watchDogOpenHelper.getReadableDatabase();
            //2.查询数据库
            //table : 表名
            //columns : 要查询字段
            //selection : 查询条件
            //selectionArgs : 查询参数
            //groupBy : 分组
            //having : 去重
            //orderBy : 排序
            Cursor cursor = database.query(WatchDogOpenHelper.DB_NAME, null, "packagname=?", new String[]{packagename}, null, null, null);
            //3.解析cursor
            if(cursor.moveToNext()){
                isLock = true;
            }
            //4.关闭数据库
            cursor.close();
            database.close();
            return isLock;
        }
        /**
         * 删除包名
         */
        public void deleteLockApp(String packagname){
            //1.获取数据库
            SQLiteDatabase database = watchDogOpenHelper.getWritableDatabase();
            //2.删除数据
            //table :表名
            //whereClause : 查询条件
            //whereArgs : 查询条件的参数
            database.delete(WatchDogOpenHelper.DB_NAME, "packagname=?", new String[]{packagname});
            //3.关闭数据库
            database.close();
        }
        /**
         * 查询全部包名
         * @return
         */
        public List<String> queryAllLockApp(){
            List<String> list  = new ArrayList<String>();
            //1.获取数据库
            SQLiteDatabase database = watchDogOpenHelper.getReadableDatabase();
            //2.查询数据库
            Cursor cursor = database.query(WatchDogOpenHelper.DB_NAME, new String[]{"packagname"}, null, null, null, null, null);
            //3.解析cursor
            while(cursor.moveToNext()){
                //4.获取数据
                //获取黑名单
                String packagename = cursor.getString(0);

                //6.添加到集合
                list.add(packagename);
            }
            //7.关闭数据库
            cursor.close();
            database.close();
            return list;
        }
;