[Android] Android 使用 Greendao 操作 db sqlite(2)-- 封装DaoUtils类
继续接上文:
Android 使用 Greendao 操作 db sqlite(1)-- 直接在MainActivity中调用
布局文件同上文一致,这里就不贴了。
一、封装DaoUtils类
UserInfoUtils.java
package com.jack.testmd.greendao;
import com.jack.testmd.model.UserInfo;
import java.util.List;
public class UserInfoUtils {
private UserInfoDao userInfoDao = DBManager.get().getUserInfoDao();
private DaoSession daoSession = DBManager.get().getDaoSession();
/**
* 插入单条
*
* @param userInfo
* @return
*/
public boolean insert(UserInfo userInfo) {
return userInfoDao.insert(userInfo) == - ? false : true;
}
/**
* 插入多条
*
* @param dataList
* @return
*/
public boolean insertMult(final List<UserInfo> dataList) {
boolean flag = false;
try {
daoSession.runInTx(new Runnable() {
@Override
public void run() {
for (UserInfo data : dataList) {
userInfoDao.insertOrReplace(data);
}
}
});
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 修改一条数据
*
* @param data
* @return
*/
public boolean update(UserInfo data) {
boolean flag = false;
try {
userInfoDao.update(data);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 删除单条记录
*
* @param key
* @return
*/
public boolean deleteByKey(long key) {
boolean flag = false;
try {
//按照id删除
userInfoDao.deleteByKey(key);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 删除所有记录
*
* @return
*/
public boolean deleteAll() {
boolean flag = false;
try {
userInfoDao.deleteAll();
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 查询所有记录
*
* @return
*/
public List<UserInfo> findAll() {
return userInfoDao.loadAll();
}
/**
* 根据主键id查询记录
*
* @param key
* @return
*/
public UserInfo findById(long key) {
return userInfoDao.load(key);
}
/**
* 使用native sql进行查询操作
*/
public List<UserInfo> findBySql(String sql, String[] conditions) {
return userInfoDao.queryRaw(sql, conditions);
}
}
调用代码:
package com.jack.testmd; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View; import com.jack.testmd.application.MyApplication;
import com.jack.testmd.greendao.DBManager;
import com.jack.testmd.greendao.UserInfoDao;
import com.jack.testmd.greendao.UserInfoUtils;
import com.jack.testmd.model.UserInfo; import java.util.List; public class TestGreenActivity extends AppCompatActivity {
private final String TAG = DBManager.class.getSimpleName();private UserInfoUtils dbUtils = new UserInfoUtils(); @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_green);
} protected void optGreen(View v) { switch (v.getId()) {
case R.id.btn_all:
List<UserInfo> list = dbUtils.findAll();
for (int i = ; i < list.size(); i++) {
Log.i(TAG, "id:" + list.get(i).getId() + ",name:" + list.get(i).getUserName() + ",age:" + list.get(i).getAge());
}
break;
case R.id.btn_add:
UserInfo userInfo = new UserInfo(, "a001", ); dbUtils.insert(userInfo);
break;
case R.id.btn_update:
UserInfo userInfo2 = new UserInfo(, "b001", ); dbUtils.update(userInfo2);
break;
case R.id.btn_del:
dbUtils.deleteByKey((long) 1);
break;
case R.id.btn_clear:
dbUtils.deleteAll();
break;
}
}
}
本博客地址: wukong1688
本文原文地址:https://www.cnblogs.com/wukong1688/p/10705662.html
转载请著名出处!谢谢~~
[Android] Android 使用 Greendao 操作 db sqlite(2)-- 封装DaoUtils类的更多相关文章
- [Android] Android 使用 Greendao 操作 db sqlite(1)-- 直接在MainActivity中调用
继续接上文: Android 使用 Greendao 操作 db sqlite 布局文件: activity_test_green.xml <?xml version="1.0&quo ...
- [Android] Android 使用 Greendao 操作 db sqlite
Android 使用 Greendao 操作 db sqlite GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣.它减轻开发人员处理低级数据库需求,同时节省开发 ...
- Python3操作MySQL基于PyMySQL封装的类
Python3操作MySQL基于PyMySQL封装的类 在未使用操作数据库的框架开发项目的时候,我们需要自己处理数据库连接问题,今天在做一个Python的演示项目,写一个操作MySQL数据库的类, ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- Android 常见SD卡操作
目录 Android 常见SD卡操作 Android 常见SD卡操作 参考 https://blog.csdn.net/mad1989/article/details/37568667. [0.] E ...
- Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite
Android数据库框架--GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文 Android数据库框架--ORMLite轻量级的对象关系映射 ...
- android 数据存储操作之SQLite
一. SQLite介绍 SQLite是android内置的一个很小的关系型数据库. 二. SQLiteOpenHelper的使用方法 ①SQLiteOpenHelper是一个辅助类来管理数据库的创建和 ...
- alexkn android第一行代码-8.sqlite使用
Android自带sqlite数据库,因此常见操作应该都掌握.包括数据库的创建/升级以及增删改查. 1.创建数据库 public class MyDatabaseHelper extends SQLi ...
- Android 学习笔记之如何使用SQLite数据库来保存数据...
PS:最近一阵子都在为考试复习...坑爹的计算机网络,复习了3天,最后该不会的还是不会...明天还考英语...真蛋疼... 学习内容: 1.使用SQLite数据库来保存数据... SQLite: ...
随机推荐
- 牛客网noip集训4
T1 (A)[https://www.nowcoder.com/acm/contest/175/A] 给出 l, r, k,请从小到大输出所有在 [l, r] 范围内,能表示为 k 的非负整数次方的所 ...
- 【CF1009F】Dominant Indices(长链剖分)
[CF1009F]Dominant Indices(长链剖分) 题面 洛谷 CF 翻译: 给定一棵\(n\)个点,以\(1\)号点为根的有根树. 对于每个点,回答在它子树中, 假设距离它为\(d\)的 ...
- iptables防火墙详解(一)
-- 防火墙 常见的防火墙 :瑞星 江民 诺顿 卡巴斯基 天网...... iptables firewalld http://www.netfilter.org/ netfilter / iptab ...
- 20165223 结对编程之四则运算week2-整体总结
目录 一.结对对象 二.需求分析 三.设计思路 四.核心代码 五.功能截图 六.结对感受 一.结对对象 担任角色(本周交换角色,流动学习) 驾驶员(Driver):20165218 赵冰雨(是控制键盘 ...
- 如何搭建高可用redis架构?
如何搭建高可用redis架构? 温国兵 架构师小秘圈 昨天 作者:温国兵,曾任职于酷狗音乐,现为三七互娱 DBA.目前主要关注领域:数据库自动化运维.高可用架构设计.数据库安全.海量数据解决方案.以及 ...
- pagehelper 使用
MySQL对分页的支持 简单来说MySQL对分页的支持是通过limit子句.请看下面的例子. limit关键字的用法是 LIMIT [offset,] rows offset是相对于首行的偏移量(首行 ...
- 利用twilio进行手机短信验证
首先要注册 twilio 账号但是由于twilio人机验证用的是Goole所有注册需要FQ 完成后去免费获取15元使用 然后 pip install twilio 注册完成后会在个人首页显示你的免费金 ...
- 每添加一张图片后,GDI对象 + 3 原因: ImageList_AddIcon(hIcon) 后没调用 DestroyIcon(hIcon)
今天无意间在[任务管理器]中发现,每添加1张图片后,应用程序的 GDI对象 + 3,添加图片后,再把所有图片删除, GDI对象数量没减少! 排查原因,发现: GDI对象 + 3 的代码是: int o ...
- POJ3734Blocks(递推+矩阵快速幂)
题目链接:http://poj.org/problem?id=3734 题意:给出n个排成一列的方块,用红.蓝.绿.黄四种颜色给它们染色,求染成红.绿的方块个数同时为偶数的方案数模10007的值. 题 ...
- rewind()函数
函数名: rewind功 能: 将文件指针重新指向一个流的开头用 法: int rewind(FILE *stream);程序例: #include <stdio.h>#include & ...