BlackNumberOpenHelper.java

package com.itheima52.mobilesafe.db.dao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; public class BlackNumberOpenHelper extends SQLiteOpenHelper{ public BlackNumberOpenHelper(Context context) {
super(context, "safe.db", null, 1);
} /**
* blacknumber 表名
* _id 主键自动增长
* number 电话号码
* mode 拦截模式 电话拦截 短信拦截
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table blacknumber (_id integer primary key autoincrement,number varchar(20),mode varchar(2))");
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}

BlackNumberDao.java

package main.java.com.itheima52.mobilesafe.db.dao;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.SystemClock; import com.itheima52.mobilesafe.bean.BlackNumberInfo; import java.util.ArrayList;
import java.util.List; public class BlackNumberDao {//增删改查 public BlackNumberOpenHelper helper; public BlackNumberDao(Context context) {
helper = new BlackNumberOpenHelper(context);
} /**添加号码
* @param number 黑名单号码
* @param mode 拦截模式
*/
public boolean add(String number, String mode) {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("number", number);
contentValues.put("mode", mode);
long rowid = db.insert("blacknumber", null, contentValues);
if (rowid == -1) {
return false;//添加失败
} else {
return true;
}
} /**
* 通过电话号码删除
* @param number 电话号码
*/
public boolean delete(String number) {
SQLiteDatabase db = helper.getWritableDatabase();
int rowNumber = db.delete("blacknumber", "number=?", new String[]{number});
if (rowNumber == 0) {//删除的数量
return false;
} else {
return true;
}
} /**
* 通过电话号码修改拦截的模式
*/
public boolean changeNumberMode(String number, String mode) {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("mode", mode);
int rownumber =db.update("blacknumber", values, "number=?", new String[]{number});//"number=?"是where条件
if (rownumber == 0) {
return false;
} else {
return true;
}
} /**
* 返回一个黑名单号码拦截模式
*/
public String findNumber(String number) {
String mode = "";
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.query("blacknumber", new String[]{"mode"}, "number=?", new String[]{number}, null, null, null);
if (cursor.moveToNext()) {
mode = cursor.getString(0);
}
cursor.close();
db.close();
return mode;
} /**
* 查询所有的黑名单
*/
public List<BlackNumberInfo> findAll() {
SQLiteDatabase db = helper.getReadableDatabase();
List<BlackNumberInfo> blackNumberInfos = new ArrayList<BlackNumberInfo>();
Cursor cursor = db.query("blacknumber", new String[]{"number", "mode"}, null, null, null, null, null);
while (cursor.moveToNext()) {
BlackNumberInfo blackNumberInfo = new BlackNumberInfo();
blackNumberInfo.setNumber(cursor.getString(0));
blackNumberInfo.setMode(cursor.getString(1));
blackNumberInfos.add(blackNumberInfo);
}
cursor.close();
db.close(); SystemClock.sleep(3000);
return blackNumberInfos;
} /**
* 分页加载数据
* @param pageNumber 表示当前是哪一页
* @param pageSize 表示每一页有多少条数据
* @return limit 表示限制当前有多少数据
* offset 表示跳过 从第几条开始
*/
public List<BlackNumberInfo> findPar(int pageNumber, int pageSize) {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.rawQuery("select number,mode from blacknumber limit ? offset ?", new String[]{String.valueOf(pageSize),
String.valueOf(pageSize * pageNumber)});
List<BlackNumberInfo> blackNumberInfos = new ArrayList<BlackNumberInfo>();
while (cursor.moveToNext()) {
BlackNumberInfo blackNumberInfo = new BlackNumberInfo();
blackNumberInfo.setMode(cursor.getString(1));
blackNumberInfo.setNumber(cursor.getString(0));
blackNumberInfos.add(blackNumberInfo);
}
cursor.close();
db.close();
return blackNumberInfos;
} /**
* 分批加载数据
* @param startIndex 开始的位置
* @param maxCount 每页展示的最大的条目
*/
public List<BlackNumberInfo> findPar2(int startIndex, int maxCount) {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.rawQuery("select number,mode from blacknumber limit ? offset ?", new String[]{String.valueOf(maxCount),
String.valueOf(startIndex)});
List<BlackNumberInfo> blackNumberInfos = new ArrayList<BlackNumberInfo>();
while (cursor.moveToNext()) {
BlackNumberInfo blackNumberInfo = new BlackNumberInfo();
blackNumberInfo.setMode(cursor.getString(1));
blackNumberInfo.setNumber(cursor.getString(0));
blackNumberInfos.add(blackNumberInfo);
}
cursor.close();
db.close();
return blackNumberInfos;
} /**
* 获取总的记录数
*/
public int getTotalNumber(){
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.rawQuery("select count(*) from blacknumber", null);
cursor.moveToNext();
int count = cursor.getInt(0);
cursor.close();
db.close();
return count;
}
}

测试TestBlackNumberDao.java

package com.itheima52.mobilesafe;

import android.content.Context;
import android.test.AndroidTestCase; import com.itheima52.mobilesafe.bean.BlackNumberInfo;
import com.itheima52.mobilesafe.db.dao.BlackNumberDao; import java.util.List;
import java.util.Random; public class TestBlackNumberDao extends AndroidTestCase { public Context mContext;
@Override
protected void setUp() throws Exception {
this.mContext = getContext();
super.setUp();
} public void testAdd(){
BlackNumberDao dao = new BlackNumberDao(mContext);
Random random = new Random();
for (int i = 0; i < 200; i++) {
Long number = 13300000000l +i;
dao.add(number +"",String.valueOf(random.nextInt(3) + 1));
}
}
public void testDelete(){
BlackNumberDao dao = new BlackNumberDao(mContext);
boolean delete = dao.delete("13300000000");
assertEquals(true,delete);
} public void testFind(){
BlackNumberDao dao = new BlackNumberDao(mContext);
String number = dao.findNumber("13300000004");
System.out.println(number);
} public void testFindAll(){
BlackNumberDao dao = new BlackNumberDao(mContext);
List<BlackNumberInfo> blackNumberInfos = dao.findAll();
for (BlackNumberInfo blackNumberInfo : blackNumberInfos) {
System.out.println(blackNumberInfo.getMode() + "" + blackNumberInfo.getNumber());
}
}
}

android139 360 黑名单 增删改查-数据库操作的更多相关文章

  1. Android学习--------实现增删改查数据库操作以及实现相似微信好友对话管理操作

    版权声明:本文为博主原创文章,转载请注明原文地址.谢谢~ https://blog.csdn.net/u011250851/article/details/26169409 近期的一个实验用到东西挺多 ...

  2. IDEA对数据库、表、记录的(增删改查可视化操作)、数据库安全性问题的演示

    对数据库的增删改查 新增数据库 修改数据库 删除数据库 对表的增删改查 新增表 修改表 删除表 对记录的增删改查 数据库安全性问题的演示 演示脏读 ​ 一个事物里面读到了另外一个事物没有提交的数据: ...

  3. mysql增删改查相关操作

    mysql增删改查相关操作 以前用mysql用的少,对于数据库相关的操作不熟悉,现在开始要接触数据库了,记录一下相关的基础操作吧. 1.数据库的授权操作 # mysql -u root -p Ente ...

  4. 使用DOM进行xml文档的crud(增删改查)操作<操作详解>

    很多朋友对DOM有感冒,这里我花了一些时间写了一个小小的教程,这个能看懂,会操作了,我相信基于DOM的其它API(如JDOM,DOM4J等)一般不会有什么问题. 后附java代码,也可以下载(可点击这 ...

  5. django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面

    1.为test.DB数据库预先创建下面数据 1    张三    16    2015-01-02    12    李四    17    2015-01-04    13    王五    14  ...

  6. ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)

    ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...

  7. [Android] SQLite数据库之增删改查基础操作

        在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Un ...

  8. BaseDao代码,用于连接数据库实行增删改查等操作

    在学习JavaWeb时会用到此代码,用于实行增删改查操作 1 package com.bdqn.dao; import java.sql.Connection; import java.sql.Dri ...

  9. MySQL常用增删改查等操作语句

    修改数据库的字符集    mysql>use mydb    mysql>alter database mydb character set utf8;创建数据库指定数据库的字符集    ...

随机推荐

  1. awk简单使用『摘.非原创』

    1 awk简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是lin ...

  2. HDU 5001-Walk(概率dp)

    题意: 给你一个图,求在长度为d的所有路径,不经过每个结点的概率 分析: 枚举每个结点,正推求概率 #include <map> #include <set> #include ...

  3. DataGird导出EXCEL的几个方法

    DataGird导出EXCEL的几个方法(WebControl) using System;using System.Data;using System.Text;using System.Web;u ...

  4. linux-制作linux启动U盘

    1. 使用的制作工具 Ø 下载需要制作启动盘的linux的iso文件 Ø 制作启动盘的软件linux usb creater Ø U盘(大小差不多需要4G的空间) 软件可以的下载的地址:http:// ...

  5. ORA-15177: cannot operate on system aliases (DBD ERROR: OCIStmtExecute)

    ASM操作的时候,删除一个文件夹,删除不了,报错如下: ASMCMD> ls -l Type Redund Striped Time Sys Name Y IPAP/ ASMCMD> rm ...

  6. 1.1……什么是3G

    移动通信技术的发展 第一代移动通信技术(1st - Generation),只能进行语音通话. 第二代移动通信技术(2nd - Generation),可以收发短信.可以上网,但速度只有几十Kbps, ...

  7. bzoj 3997 [TJOI2015]组合数学(DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3997 [题意] 给定一个nm的长方形,每次只能使经过格子权值减1,每次只能向右向下,问 ...

  8. Kindle Paperwhite 2使用体验

    博客开通后一懒就扔下了几十天,着实自惭.鉴于是第一篇,先说点题外话. 一转眼读研的生活已经过去一年有余.曾经的同学已经在职场拼搏,同龄人的生活状态也自然地带给自己一份紧迫感:不敢再贪恋校园生活的安逸, ...

  9. jvm所占空间的配置

    http://www.cnblogs.com/mingforyou/archive/2012/03/03/2378143.html

  10. Linux 获取文件时间信息 判断文件是否存在

    获取文件时间戳   (1)查看全部信息: stat e4.txt 范例: [root@localhost ~]# stat e4.txt File: “e4.txt” Size: 0 Blocks: ...