继续接上文:

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类的更多相关文章

  1. [Android] Android 使用 Greendao 操作 db sqlite(1)-- 直接在MainActivity中调用

    继续接上文: Android 使用 Greendao 操作 db sqlite 布局文件: activity_test_green.xml <?xml version="1.0&quo ...

  2. [Android] Android 使用 Greendao 操作 db sqlite

    Android 使用 Greendao 操作 db sqlite GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣.它减轻开发人员处理低级数据库需求,同时节省开发 ...

  3. Python3操作MySQL基于PyMySQL封装的类

    Python3操作MySQL基于PyMySQL封装的类   在未使用操作数据库的框架开发项目的时候,我们需要自己处理数据库连接问题,今天在做一个Python的演示项目,写一个操作MySQL数据库的类, ...

  4. android中的数据库操作(SQLite)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  5. Android 常见SD卡操作

    目录 Android 常见SD卡操作 Android 常见SD卡操作 参考 https://blog.csdn.net/mad1989/article/details/37568667. [0.] E ...

  6. Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite

    Android数据库框架--GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文 Android数据库框架--ORMLite轻量级的对象关系映射 ...

  7. android 数据存储操作之SQLite

    一. SQLite介绍 SQLite是android内置的一个很小的关系型数据库. 二. SQLiteOpenHelper的使用方法 ①SQLiteOpenHelper是一个辅助类来管理数据库的创建和 ...

  8. alexkn android第一行代码-8.sqlite使用

    Android自带sqlite数据库,因此常见操作应该都掌握.包括数据库的创建/升级以及增删改查. 1.创建数据库 public class MyDatabaseHelper extends SQLi ...

  9. Android 学习笔记之如何使用SQLite数据库来保存数据...

    PS:最近一阵子都在为考试复习...坑爹的计算机网络,复习了3天,最后该不会的还是不会...明天还考英语...真蛋疼... 学习内容: 1.使用SQLite数据库来保存数据... SQLite:   ...

随机推荐

  1. 使用 windows server 2012 性能监视器

    监控Windows server的内存.CPU.磁盘IO等性能 配置方法: 打开Aministrator Tools --> Performance Monitor Performances - ...

  2. 【LOJ#2542】[PKUWC2018]随机游走(min-max容斥,动态规划)

    [LOJ#2542][PKUWC2018]随机游走(min-max容斥,动态规划) 题面 LOJ 题解 很明显,要求的东西可以很容易的进行\(min-max\)容斥,那么转为求集合的\(min\). ...

  3. [HEOI2016/TJOI2016]游戏 解题报告

    [HEOI2016/TJOI2016]游戏 看起来就是个二分图匹配啊 最大化匹配是在最大化边数,那么一条边就代表选中一个坐标内的点 但是每一行不一定只会有一个匹配 于是把点拆开,按照'#'划分一下就好 ...

  4. servlet 上下文

    一.应用需求: 如何统计网站在线人数? 使用ServletContext. 二.ServletContext详解: 1.是不同于session和cookie,是可以让所有客户端共同访问的内容,是在服务 ...

  5. java 各种数据类型判断为空

    一,基本数据类型 八种基本类型有默认值 http://www.runoob.com/java/java-basic-datatypes.html 二,String 对象 // 判断String为空 / ...

  6. (转)java 序列化ID的作用

    序列化ID的作用: 其实,这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!简单来说,java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的.在进行反序 ...

  7. Maven初窥门径

    Maven项目对象模型,可以使用一小段描述来管理项目的构建,报告和文档的软件项目管理工具. 安装 下载地址:http://maven.apache.org/download.cgi 下载解压,我将它放 ...

  8. 厘摩(centimorgan,cM)到底是啥鬼

    根据维基百科的定义: 厘摩(centimorgan,简写为cM),或称为图距单位(map unit),是遗传连锁中的距离单位,以现代遗传学之父托马斯·亨特·摩尔根的名字命名.1厘摩的定义为两个位点间平 ...

  9. Day033--Python--进程

    什么是进程? 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体 ...

  10. windows远程桌面无法粘贴复制的问题解决方法

    这两天遇到一个困扰我很久的问题,每次通过winodws远程桌面,本地的数据无法通过复制粘贴到远程服务器上.现把我找到的解决方案记录下来分享给大家 一般出现问题可能性比较大的原因就是rdpclip.ex ...