继续接上文:

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. 最小表示法模板(洛谷P1368 工艺)(最小表示法)

    洛谷题目传送门 最小表示是指一个字符串通过循环位移变换(第一个移到最后一个)所能得到的字典序最小的字符串. 因为是环状的,所以肯定要先转化为序列,把原串倍长. 设决策点为一个表示法的开头.比较两个决策 ...

  2. 【dfs】LETTERS

    1212:LETTERS [题目描述] 给出一个roe×colroe×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母.问最多可以经过几个字母. [ ...

  3. cf1088E Ehab and a component choosing problem (树形dp)

    题意(考试时看错了对着样例wa了好久..):从树上选k个连通块,使得权值的平均值最大的基础上,选的块数最多 如果不考虑块数最多的限制,肯定是只选一个权值最大的块是最好的 然后只要看这个权值最大的块有多 ...

  4. [SCOI2015]国旗计划[Wf2014]Surveillance

    [SCOI2015]国旗计划 A国正在开展一项伟大的计划——国旗计划.这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈.这 项计划需要多名边防战士以接力的形式共同完成,为此,国土安全局已经挑选了N名 ...

  5. hdu 1978 How many ways(记忆化搜索)

    这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m).游戏的规则描述如下:1.机器人一开始在棋盘的起始点并有起始点所标有的能量.2.机器人只能向右或者向下走,并 ...

  6. layui laydate is not defined

    记得引入的js文件要放到layui.js前面才会生效

  7. (三)flask中的请求钩子函数

    请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个视图 ...

  8. CAS与ABA问题产生和解决

    乐观锁和悲观锁 Synchronized属于悲观锁,悲观地认为程序中的并发情况严重,所以严防死守.CAS属于乐观锁,乐观地认为程序中的并发情况不那么严重,所以让线程不断去尝试更新. 性能对比: Syn ...

  9. 记一次 HTTP信息头管理器使用 的重要性

    今天在测试中遇到了一个问题 使用JMeter时请求相关地址参数及方法都填写正确,但是相应数据返回始终不对,例如 查看取样器结果显示 200 正常,但响应数据不符合正常的结果. 经反复检查发现问题如下: ...

  10. 基本数据类型补充,深浅copy

    #str s=' ' #只能是以至少一个空格组成的字符串(全空格) print(s.isspace()) #tuple 当元组只有一个元素组成,并没有",",则该元素是什么数据类型 ...