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 +
"]";
}
}
黑名单数据库操作工具类
* @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 +
"]";
}
}
相关文章推荐
- Android随笔04——SP
- android随笔03——手势解析器
- [转]Android底部弹出的View,可自定义布局
- [Android]_[初级]_[adb 实用命令]
- [Android]_[初级]_[adb 实用命令]
- Android6.0动态权限
- android 实用的开源框架
- Android版添加phonegap--支付宝2.0快捷支付插件教程
- Android Studio打开错误代码快速修复提示
- Android Studio打开错误代码快速修复提示
- Android开发总结笔记 SQLiteDataBase 2-3
- Android开发总结笔记 External&Internal Storage 2-2
- Android开发总结笔记 SharePreference(偏好参数) 2-1
- MPAndroidChart开源图表库(一)之饼状图
- android的progressbar修改背景颜色跟进度条颜色
- Android RSA加密解密
- Android应用设置全屏的方法
- (转)最强Android模拟器genymotion的安装与配置
- Android 不能退出的解释(android.os.Process.killProcess(android.os.Process.myPid()))
- Android 属性总结