您的位置:首页 > 移动开发 > Android开发

android随笔05——SQLite

2015-12-25 10:42 417 查看
*
黑名单数据库操作工具类


* @author Administrator

*

public class BlackDao {

//将此工具类封装起来,这样别人就只能通过一些公开的静态方法来获得当前对象的实例了
而不能通过new 这个类了

private BlackDao(Context ctx){

dbHelper = new
BlackDbHelper(ctx, "black_num.db", 1);

}



private static BlackDao instance;

//线程同步锁synchronized 如果不添加
那么就会有很小的几率会在很多线程同时调用的时候产生线程不同步而导致多次创建的BUG

public synchronized static BlackDao
getInstance(Context ctx){

//判断instance是否为空

if(instance==null){

//如果为空就新建一个

instance =
new BlackDao(ctx);



}

//如果instance已经存在那么就直接返回instance
这样就能确保从始至终只有一个BlackDao对象 这就是单例模式

return instance;



}

private BlackDbHelper dbHelper;



//将表名抽取成一个成员变量

private String table_black_num =
"black_num";





* 添加黑名单

* @param number

* @param mode



public void addBlackNum(String number,int
mode){

//获得一个可写的数据库的引用

SQLiteDatabase db =
dbHelper.getWritableDatabase();



ContentValues values = new
ContentValues();

values.put("number",
number);//参数一:列名 参数二:列名

values.put("mode", mode);



db.insert(table_black_num,
"_id", values);//只要保证values中有内容,第二个参数可以写null

}



* 删除黑名单

* @param number



public void deleteBlackNum(String number){

SQLiteDatabase db =
dbHelper.getWritableDatabase();



db.delete(table_black_num,
"number = ?", new String[]{number});

//参数一:表名
参数二:删除条件 参数三:参数二中的?由这里的字符串数组代替 前边有几个?
后边的数组中就要有几个对应的 字符串

}



* 更新黑名单拦截模式



public void updateBlackNum(String number,int
newMode){

SQLiteDatabase db =
dbHelper.getWritableDatabase();



ContentValues values = new
ContentValues();

values.put("mode",newMode);

db.update(table_black_num,values
,"number = ?", new String[]{number});

}



* 获得所有的黑名单信息

* @return 黑名单列表,若没有黑名单,则列表长度为0



public ListgetAllBlackNum(){



List numList = new
ArrayList();



SQLiteDatabase db =
dbHelper.getReadableDatabase();

Cursor cursor =
db.query(table_black_num, null, null, null, null, null, null,
null);

//查询数据库返回的cursor
默认是在第一行的上一行\

while(cursor.moveToNext()){

String number
=
cursor.getString(cursor.getColumnIndex("number"));//获得number这一列的值

int mode =
cursor.getInt(2);//获得下表为2 的这一列的值 mode这一列

BlackNumBean
balckbean = new BlackNumBean(number,mode);

numList.add(balckbean);



cursor.close();//用完一定记得关闭



}

return numList;



}

}

public class BlackNumBean {


* 黑名单号码


public String number;


* 拦截模式


* 0全部


* 1电话


* 2短信


public int mode;


public BlackNumBean(){


super();

}


public BlackNumBean(String number,int mode){


super();


this.number = number;


this.mode = mode;


}

public
String toString() {


return "BlackNumBean [number=" + number + ", mode=" + mode +
"]";


}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: