package com.swjtu.gcmformojo;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
/**
* GcmMessageDao 数据库操作类 dao后缀的都是数据库操作类
*
* 我们这里的每一个 增删改查 的方法都通过getWritableDatabase()去实例化了一个数据库,这里必须这么做
* 不客气抽取 成为一个成员变量, 否则报错,若是觉得麻烦可以通过定义方法来置为null和重新赋值
*
* —— 其实dao类在这里做得事情特别简单:
* 1、定义一个构造方法,利用这个方法去实例化一个 数据库帮助类
* 2、编写dao类的对应的 增删改查方法。
* Created by HeiPi on 2017/2/18.
*/
@Deprecated
public class GcmMessageDao {
private MyDBHelper mMyDBHelper;
/**
* dao类需要实例化数据库Help类,只有得到帮助类的对象我们才可以实例化 SQLiteDatabase
* @param context
*/
public GcmMessageDao(Context context) {
mMyDBHelper=new MyDBHelper(context);
}
// 将数据库打开帮帮助类实例化,然后利用这个对象
// 调用谷歌的api去进行增删改查
// 增加消息的方法,返回的的是一个long值
public long addRemoteMessage( String msgId , String msgType ,String msgTitle ,String senderType , String msgContent){
// 增删改查每一个方法都要得到数据库,然后操作完成后一定要关闭
// getWritableDatabase(); 执行后数据库文件才会生成
// 数据库文件利用DDMS可以查看,在 data/data/包名/databases 目录下即可查看
SQLiteDatabase sqLiteDatabase = mMyDBHelper.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put("msgId",msgId);
contentValues.put("msgType",msgType);
contentValues.put("msgTitle",msgTitle);
contentValues.put("senderType",senderType);
contentValues.put("msgContent",msgContent);
// 返回,显示数据添加在第几行
// 加了现在连续添加了3行数据,突然删掉第三行,然后再添加一条数据返回的是4不是3
// 因为自增长
long rowid=sqLiteDatabase.insert("remoteMessage",null,contentValues);
sqLiteDatabase.close();
return rowid;
}
// 增加聊天记录消息的方法,返回的的是一个long值
public long addMsgSave( String msgId , String msgContent){
SQLiteDatabase sqLiteDatabase = mMyDBHelper.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put("msgId",msgId);
contentValues.put("msgContent",msgContent);
long rowid=sqLiteDatabase.insert("msgSave",null,contentValues);
sqLiteDatabase.close();
return rowid;
}
// 增加通知id,返回的的是一个long值
public long addMsgIdNotifyId( String msgId , String NotifyId){
SQLiteDatabase sqLiteDatabase = mMyDBHelper.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put("msgId",msgId);
contentValues.put("NotifyId",NotifyId);
long rowid=sqLiteDatabase.insert("msgIdNotifyId",null,contentValues);
sqLiteDatabase.close();
return rowid;
}
public long addMsgCount( String msgId , String msgCount){
SQLiteDatabase sqLiteDatabase = mMyDBHelper.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put("msgId",msgId);
contentValues.put("msgCount",msgCount);
long rowid=sqLiteDatabase.insert("msgCount",null,contentValues);
sqLiteDatabase.close();
return rowid;
}
//修改消息计数
// 增加列表
public long addCurrentUserList( String userName,String userId,String userType,String userMessage,String userTime,String senderType,String NotifyId,String msgCount){
SQLiteDatabase sqLiteDatabase = mMyDBHelper.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put("userName",userName);
contentValues.put("userId",userId);
contentValues.put("userType",userType);
contentValues.put("userMessage",userMessage);
contentValues.put("userTime",userTime);
contentValues.put("senderType",senderType);
contentValues.put("NotifyId",NotifyId);
contentValues.put("msgCount",msgCount);
long rowid=sqLiteDatabase.insert("currentUserList",null,contentValues);
sqLiteDatabase.close();
return rowid;
}
// 删除的方法,返回值是int
public int deleteRemoteMessage(String name){
SQLiteDatabase sqLiteDatabase = mMyDBHelper.getWritableDatabase();
int deleteResult = sqLiteDatabase.delete("remoteMessage", "name=?", new String[]{name});
sqLiteDatabase.close();
return deleteResult;
}
/**
* 修改的方法
* @param name
* @param newPhone
* @return
*/
public int updateData(String name,String newPhone){
SQLiteDatabase sqLiteDatabase = mMyDBHelper.getWritableDatabase();
ContentValues contentValues =new ContentValues();
contentValues.put("phone", newPhone);
int updateResult = sqLiteDatabase.update("contactinfo", contentValues, "name=?", new String[]{name});
sqLiteDatabase.close();
return updateResult;
}
/**
* 查询的方法(查找电话)
* @param name
* @return
*/
public String alterDate(String name){
String phone = null;
SQLiteDatabase readableDatabase = mMyDBHelper.getReadableDatabase();
// 查询比较特别,涉及到 cursor
Cursor cursor = readableDatabase.query("contactinfo", new String[]{"phone"}, "name=?", new String[]{name}, null, null, null);
if(cursor.moveToNext()){
phone=cursor.getString(0);
}
cursor.close(); // 记得关闭
readableDatabase.close(); // 关闭数据库
return phone;
}
}