GreenDao使用小记

来源:互联网 发布:守望先锋游戏数据查询 编辑:程序博客网 时间:2024/06/06 09:22

首先是bean类

/**
* Created by HJR36 on 2016/11/2.
* 互动消息bean类
*/
@Entity(
nameInDb = “message_db”
)
public class ChangemessageBean {
/**
* circleText :
* targetType : 1
* circleId : 9234823812341234
* dynamicType : 1
* userIcon : http://www.baidu.com/asdf.jpg
* userName : 切克闹
* circleImgUrl : http://www.baidu.com
* userId : us2134234
* commentContent :
*/
@Id(autoincrement = true)
@Index(unique = true) // 建立索引
private Long messageId;//消息Id
/*圈子文字内容/
public String circleText;
public int targetType;
public String circleId;
public int dynamicType;//活动圈类型
public String circleImgUrl;
public String userName;
public String commentContent;
public String dataTime;
public String userImg;
public boolean isLook=false;
}
(写好之后,点击编译,数据库会自动生成表)

数据库管理类
/**
* Created by HJR36 on 2016/11/2.
* 互动消息的数据库管理类
*/

public class ChangeMessageManager {
private ChangemessageBeanDao mChangemessageBeanDao;
private static ChangeMessageManager changeMessageManager = null;
private static Context context;

private ChangeMessageManager(Context mContext) {    try {        mChangemessageBeanDao = HtDBManager.getInstance(mContext).getDaoSession().getChangemessageBeanDao();    } catch (Exception e) {        e.printStackTrace();    }}public static ChangeMessageManager getInstance(Context mContext) {    context=mContext;    if (changeMessageManager == null) {        changeMessageManager = new ChangeMessageManager(context);    }    return changeMessageManager;}/** * 查询所有的互动消息 * * @return */public List<ChangemessageBean> loadAllChangeMessage() {    List<ChangemessageBean> list=mChangemessageBeanDao.loadAll();    //按时间倒序排序    Collections.reverse(list);    return list;}/** * 分页查询所有的互动消息 * @return */public List<ChangemessageBean> loadAllChangeMessageAsPage(int page) {    QueryBuilder qb = mChangemessageBeanDao.queryBuilder();    List<ChangemessageBean> list = qb            .orderDesc(ChangemessageBeanDao.Properties.MessageId).offset((page-1) * 10).limit(10).list();    return list;}/** * 删除所有的互动消息 */public void deleteChangeMessageList() {    mChangemessageBeanDao.deleteAll();}/** * 通过 Id 查找互动消息 * * @return */public ChangemessageBean findChangemessageById(long id) {    return mChangemessageBeanDao.queryBuilder().where(ChangemessageBeanDao.Properties.MessageId.eq(id)).unique();}/** * 插入数据,并返回id * * @param changemessage * @return */public long insertOrReplaceChangemessage(ChangemessageBean changemessage) {    return mChangemessageBeanDao.insertOrReplace(changemessage);}/** * 判断是否存在 * * @param longid */public boolean judgeExist(long longid) {    ChangemessageBean changemessageBean = findChangemessageById(longid);    if (changemessageBean != null) {        return true;    }    return false;}/** * 用过 Id 删除互动消息 * * @param longid */public void delete(long longid) {    ChangemessageBean changemessage = mChangemessageBeanDao            .queryBuilder().where(ChangemessageBeanDao.Properties.MessageId.eq(longid)).unique();    if (changemessage != null) {        mChangemessageBeanDao.delete(changemessage);    }}

}

插入操作
//处理消息部分
ChangemessageBean changemessage=new ChangemessageBean();
changemessage.setCommentContent(commentContent);
changemessage.setCircleText(circleContent);
changemessage.setCircleId(targetId);
changemessage.setCircleImgUrl(imageUrl);
changemessage.setTargetType(Integer.parseInt(type));
changemessage.setDataTime(dateTime);
//处理用户部分
changemessage.setUserName(userName);
changemessage.setUserImg(userImg);
changeMessageManager.insertOrReplaceChangemessage(changemessage);

从数据库读取数据(做了分页查询)

/**
* 从本地数据库拿通知
*/
public void getChangeMesssage() {
if (currentPage == 1) {
swipeRefreshLayout.setRefreshing(false);
} else {
mCompatlv.stopLoadMore();
}
changemessageList = changeMessageManager.loadAllChangeMessageAsPage(currentPage);
if (changemessageList!=null && changemessageList.size() > 0){
mNull.setVisibility(View.GONE);
if (currentPage == 1) {
mAdapter.clearAll();
mAdapter.add(changemessageList);
} else {
mAdapter.add(changemessageList);
}
currentPage++;
if (changemessageList.size() < 10) {
mCompatlv.setPullLoadEnable(false);
} else {
mCompatlv.setPullLoadEnable(true);
}
}else {
if (currentPage == 1) {
displayNulContent();
}
}
mAdapter.notifyDataSetChanged();
}
成功截图

1 0
原创粉丝点击