首先是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(); } 成功截图