继续接上文:

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. MT【276】正切的半角公式

    若$\Delta ABC$满足:$\tan\dfrac{A}{2}\cdot\tan\dfrac{C}{2}=\dfrac{1}{3},b=\dfrac{4}{3}a$,则$\sin B=$_____ ...

  2. 【THUWC2017】随机二分图(动态规划)

    [THUWC2017]随机二分图(动态规划) 题面 BZOJ 洛谷 题解 如果每天边的限制都是\(0.5\)的概率出现或者不出现的话,可以把边按照二分图左侧的点的编号排序,然后设\(f[i][S]\) ...

  3. HR_Hash Tables: Ransom Note

    1 题目重点:whole words | case-sensitive #!/bin/python3 import math import os import random import re imp ...

  4. GCD HDU - 1695(容斥原理)

    要求从满足gcd(x, y) = k的对数,其中x属于[1, n], y属于[1, m] gcd(x, y) = k ==>gcd(x/k, y/k) =1 x/k属于[1, n/k], y/k ...

  5. Paint the Wall ZOJ - 2747

    点数很多,坐标值很大,然后离散化一下用一个点表示一小块的面积对应的颜色,然后更新的时候一块一块更新,查询的时候一块一块查询 #include<map> #include<set> ...

  6. Ubuntu16.04下的NetCore环境搭建(附录含Ubuntu 18.04 安装 NetCore2.1)

    跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux VSCode安装:http://www.cnblogs.com/dunitia ...

  7. 跟angular2学一键开启项目--关于上个react-redux项目的一键调试

    一键调试类似于webpack的hot-loader,但是这个hot-loader并不怎么好用,想省事的同学可以配置一下就完了. 今天介绍browser-sync,用它来一键开启项目.它可以监听任意文件 ...

  8. BZOJ 1912: [Apio2010]patrol 巡逻 (树的直径)(详解)

    题目: https://www.lydsy.com/JudgeOnline/problem.php?id=1912 题解: 首先,显然当不加边的时候,遍历一棵树每条边都要经过两次.那么现在考虑k==1 ...

  9. C#两个实体之间相同属性的映射

    public static R Mapping<R, T>(T model) { R result = Activator.CreateInstance<R>(); forea ...

  10. win32: 静态控件(Static) - SS_NOTIFY - 响应事件

    SS_NOTIFY 在缺省情况下,静态控件是不响应鼠标事件的.只有在设置该风格后,当用户单击静态 控件时,静态控件才向父窗口发送STN_CLICKED通知 -> WM_COMMAND. 2014 ...