android中创建数据库已经数据库的操作代码的封装

1.创建类( MyDBHelper ),这个类必须继承 SQLiteOpenHelper类。

 public MyDBHelper (Context context) {
        super(context, "blackNumber.db", null, 1);
        
            }
    /**
     * 第一次创建数据库的时候执行的方法
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table blackNumber (_id integer primary key            autoincrement ,number varchar(20))");
    }
    /**
     * 更新数据库的操作
     */
    @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        
}

2.创建( MyDBHelper Dao )实现数据库操作的相关方法。

private Context context;
private BlackNumberDBHelper dbHelper;
public BlackNumberDao(Context context) {
    this.context = context;
    dbHelper = new BlackNumberDBHelper(context);
}
/**
 * 查询
 * @param number  电话号码
 * @return        是否存在记录
 */
public boolean find(String number){
    boolean flag = false;
    
    SQLiteDatabase db = dbHelper.getReadableDatabase();
    if(db.isOpen()){
        Cursor cursor = db.rawQuery("select * from blackNumber where number = ?", new String[]{number});
        
        if(cursor.moveToNext()){
            flag = true;
        }
        cursor.close();
        db.close();
    }
    return flag;
}
/**
 * 添加号码到黑名单数据库
 * @param number    电话号码
 */
public void insert(String number){
    /**
     * 保证一个号码只被添加一次
     */
    if(find(number)){
        return;
    }
    
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    if(db.isOpen()){
        db.execSQL("insert into blackNumber(number) values(?)", new Object[]{number});
        db.close();
    }
}
/**
 * 删除黑名单
 * @param number   电话号码
 */
public void delete(String number){
    if(!find(number)){
        return;
    }
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    if(db.isOpen()){
        db.execSQL("delete from blackNumber where number = ?", new Object[]{number});
        db.close();
    }
}
/**
 * 更新黑名单
 * @param number   电话号码
 */
public void update(String oldNumber,String newNumber){
    if(!find(oldNumber)){
        return;
    }
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    if(db.isOpen()){
        db.execSQL("update blackNumber set number = ? where number=?", new Object[]{newNumber,oldNumber});
        db.close();
    }
}
/**
 * 查询全部黑名单
 * @return   包含黑名单的List集合
 */
public List<String> getAllNumbers(){
    List<String> numbers = new ArrayList<String>();
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    if(db.isOpen()){
        Cursor cursor = db.rawQuery("select number from blackNumber", null);
        while(cursor.moveToNext()){
            String number = cursor.getString(0);
            numbers.add(number);
        }
        cursor.close();
        db.close();
    }
    return numbers;
}

3.在Activity中调用相关操作数据库的方法。

你可能感兴趣的:(android中创建数据库已经数据库的操作代码的封装)