Android 配置使用 GreenDao 教程
package com.cn.speedchat.greendao; import java.util.ArrayList; import java.util.List; import com.cn.greendaotest.ControlApp; import com.cn.speedchat.greendao.MqttChatEntityDao.Properties; import de.greenrobot.dao.query.QueryBuilder; import android.content.Context; import android.util.Log; public class DBHelper { private static final String TAG = DBHelper.class.getSimpleName(); private static DBHelper instance; private static Context appContext; private DaoSession mDaoSession; private MqttChatEntityDao chatDao; private SessionEntityDao sessionDao; private DBHelper() { } //單例模式,DBHelper只初始化一次 public static DBHelper getInstance(Context context) { if (instance == null) { instance = new DBHelper(); if (appContext == null){ appContext = context.getApplicationContext(); } instance.mDaoSession = ControlApp.getDaoSession(context); instance.chatDao = instance.mDaoSession.getMqttChatEntityDao(); instance.sessionDao = instance.mDaoSession.getSessionEntityDao(); } return instance; } //刪除Session表 public void dropSessionTable() { SessionEntityDao.dropTable(mDaoSession.getDatabase(), true); } //刪除MqttChatEntity表 public void dropChatTable() { MqttChatEntityDao.dropTable(mDaoSession.getDatabase(), true); } //刪除所有表 public void dropAllTable() { MqttChatEntityDao.dropTable(mDaoSession.getDatabase(), true); SessionEntityDao.dropTable(mDaoSession.getDatabase(), true); ReplayEntityDao.dropTable(mDaoSession.getDatabase(), true); } //建立所有表 public void createAllTable() { MqttChatEntityDao.createTable(mDaoSession.getDatabase(), true); SessionEntityDao.createTable(mDaoSession.getDatabase(), true); ReplayEntityDao.createTable(mDaoSession.getDatabase(), true); } /** * insert or update note * @param note * @return insert or update note id */ //插入或者刪除session項 public long saveSession(SessionEntity session){ return sessionDao.insertOrReplace(session); } //獲得所有的Session倒序排存到List列表裡面 public List<SessionEntity> loadAllSession() { List<SessionEntity> sessions = new ArrayList<SessionEntity>(); List<SessionEntity> tmpSessions = sessionDao.loadAll(); int len = tmpSessions.size(); for (int i = len-1; i >=0; i--) { sessions.add(tmpSessions.get(i)); } return sessions; } public void DeleteSession(SessionEntity entity) { sessionDao.delete(entity); } //刪除某一項Session public void DeleteNoteBySession(SessionEntity entity) { QueryBuilder<MqttChatEntity> mqBuilder = chatDao.queryBuilder(); mqBuilder.where(Properties.Sessionid.eq(entity.getSessionid())); List<MqttChatEntity> chatEntityList = mqBuilder.build().list(); chatDao.deleteInTx(chatEntityList); } //根據id找到某一項 public MqttChatEntity loadNote(long id) { return chatDao.load(id); } //獲得所有的MqttChatEntity列表 public List<MqttChatEntity> loadAllNote(){ return chatDao.loadAll(); } /** * query list with where clause * ex: begin_date_time >= ? AND end_date_time <= ? * @param where where clause, include 'where' word * @param params query parameters * @return */ //查詢滿足params條件的列表 public List<MqttChatEntity> queryNote(String where, String... params){ ArrayList<MqttChatEntity> ad = new ArrayList<MqttChatEntity>(); return chatDao.queryRaw(where, params); } //不一一介紹了,大家可以自己寫,有些比較難的查詢可以使用QueryBuilder來查詢 public List<MqttChatEntity> loadLastMsgBySessionid(String sessionid){ QueryBuilder<MqttChatEntity> mqBuilder = chatDao.queryBuilder(); mqBuilder.where(Properties.Sessionid.eq(sessionid)) .orderDesc(Properties.Id) .limit(1); return mqBuilder.list(); } public List<MqttChatEntity> loadMoreMsgById(String sessionid, Long id){ QueryBuilder<MqttChatEntity> mqBuilder = chatDao.queryBuilder(); mqBuilder.where(Properties.Id.lt(id)) .where(Properties.Sessionid.eq(sessionid)) .orderDesc(Properties.Id) .limit(20); return mqBuilder.list(); } /** * delete all note */ public void deleteAllNote(){ chatDao.deleteAll(); } /** * delete note by id * @param id */ public void deleteNote(long id){ chatDao.deleteByKey(id); Log.i(TAG, "delete"); } public void deleteNote(MqttChatEntity note){ chatDao.delete(note); } }
相關推薦
Android 配置使用 GreenDao 教程
package com.cn.speedchat.greendao; import java.util.ArrayList; import java.util.List; import com.cn.greendaotest.ControlApp; import com.cn.speedchat.greend
Android資料庫GreenDao配置
1.新增依賴 在moudle的build.gradle中新增依賴 implementation 'org.greenrobot:greendao:3.2.2' implementation 'org.greenrobot:greendao-generator:3.2.2'
[Android Studio 權威教程]AS 中配置強大的版本管理系統(Git、SVN、等)
在Eclipse中新增Git等版本管理工具需要自己新增外掛,而且個人覺得不咋好用,在AS中已經給我們整合好了,我們只需要配置一下就OK了,今天就和大家聊聊怎麼配置以及使用的要點。 1. 安裝Git/CVS 第一步首先你需要安裝Git/CVS
[Android Studio 權威教程]離線配置SDK,建立第一個AS專案
前三篇bolg我給大家分享了怎麼安裝Android Studio,但是我們還沒有使用AS建立一個Android 的專案,那麼這篇blog我們開始離線配置SDK,並且建立一個Android專案 1. 安裝/更新sdk 第一步首先我
Android Studio配置GreenDAO 3.2.0和使用方法
我相信,在平時的開發過程中,大家一定會或多或少地接觸到SQLite。然而在使用它時,我們往往需要做許多額外的工作,像編寫SQL語句與解析查詢結果等。所以,適用於Android ORM框架也就孕育而生了,現在市面上主流的框架有OrmLite、SugarORM、Active An
Android 開發環境配置圖文教程(jdk+eclipse+android sdk)
一 相關下載(1) java JDK下載:進入該網頁: http://java.sun.com/javase/downloads/index.jsp (或者直接點選下載)如下圖: 選擇 Download JDK 只下載JDK,無需下載jre. (2)eclipse下載 我
Android Studio使用教程圖文詳解
識別 由於 group 之前 而是 ces doc java代碼 風格 Android Studio是一款非常專業的Android集成開發環境工具,那麽,Android Studio怎麽用呢?針對不知道Android Studio怎麽使用的朋友們,本文就為大家圖文詳細介紹A
nodejs pm2配置使用教程
無法 軟連接 說明 cluster ref 數列 工具 退出程序 sock pm2是非常優秀工具,它提供對基於node.js的項目運行托管服務。它基於命令行界面,提供很多特性: 內置的負載均衡器等等,下面我們就一起來看看吧。 一、簡介 pm2是一個帶有負載均衡功能的應用
Android基礎新手教程——1.2.1 使用Eclipse + ADT + SDK開發Android APP
devtools 進行 string append tle 編寫 android項目 找不到 系統版本號 Android基礎新手教程——1.2.1 使用Eclipse + ADT + SDK開發Android APP
Android實戰簡易教程-第二十六槍(基於ViewPager實現微信頁面切換效果)
stat addview data android tid des viewpage 聊天 == 1.頭部布局文件top.xml:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and
Android基礎新手教程——3.8 Gestures(手勢)
too 內部 arr dial 無法找到 intent 圖片 don item Android基礎新手教程——3.8 Gesture(手勢)
Android基礎新手教程——4.2.3 Service精通
類繼承 存儲 構造 string 分隔 span 並不是 mib first Android基礎新手教程——4.2.3 Service精通
win7下IIS的安裝和配置 圖文教程
功能 服務 ges mage net 註冊 png com 服務器 最近想自己用自己的電腦搭一臺服務器,註冊了花生殼,得到了一個免費的域名,然後需要使用IIS服務,我的電腦是Win7的,默認是不安裝IIS的,於是只好先安裝起來 一.首先是安裝IIS。打開控制面板,打開“程序
vsftpd 安裝配置詳細教程
ota 復制 名稱 客戶端連接 conf ice cal ftp服務器 cannot linux下ftp軟件不少,大致特點:<br /> wu-ftp:比較老牌,但針對它的攻擊比較多,設置比較麻煩,但功能比較強大。<br /> vsftpd:功能強大
windows下配置JDK教程
32位 ges 部署 其他 直接 htm .cn http -1 1.思路: 首先要確定所要用的應用可以兼容哪個版本jdk,然後開始下載對應的版本,最後安裝,配置環境變量,測試,部署完成。 2.jdk下載地址: 如果下載全新的jdk可以直接百度jdk官網下載 如果需要舊
Ubuntu+IntelliJ IDEA+Android 配置NDK環境+openCV
reat which .text jnicall find http pytho ava main 最近需要將Python人證對比模型移植安卓端.安卓端需要使用openCV簡單的人像提取處理.在配置openCV前首先需要配置NDK環境. NDK的介紹(http://www.
ANDROID STUDIO系列教程六--GRADLE多渠道打包
tor 等待 time() utf 腳本 manifest file resource 一個 由於國內Android市場眾多渠道,為了統計每個渠道的下載及其它數據統計,就需要我們針對每個渠道單獨打包,如果讓你打幾十個市場的包豈不煩死了,不過有了Gradle,這再也不是事了。
MySQL 5.6 (Win7 64位)下載、安裝與配置圖文教程
服務 建立 basedir 字長 目錄 之前 配置環境 改名 一次 一. 工具 Win7 64位操作系統 二. 步驟 第一步:下載安裝包 下載 地址:http://www.mysql.com/ 截止到目前(2016/7/24) ,官網的最新版本是5.7.13
webpack超詳細配置, 使用教程(圖文)
功能 tty str int 頁面 install scripts ctype mark webpack超詳細配置, 使用教程(圖文) 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 博主在這裏就不詳細介紹webpack來源以及作用了, 本篇博文面向
Android實戰簡易教程-第六十六槍(server端搭建和server端Json數據交互)
視頻 pack tis sta listen let Coding read ide 學習Android有一段時間了。對server端有非常深的好奇,決定對serve