Android 使用 Greendao 操作 db sqlite

GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣。它减轻开发人员处理低级数据库需求,同时节省开发时间。 SQLite是一个令人敬畏的内嵌的关系数据库,编写SQL和解析查询结果是相当乏味和耗时的任务。通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”),GreenDAO可以将它们从这些映射中释放出来,这样,您可以使用简单的面向对象的API来存储,更新,删除和查询数据库。

如何使用:

一、添加依赖

项目 build.gradle

buildscript {

    dependencies {
**
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
}
}

app\build.gradle

apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' android {
***
} greendao {
schemaVersion 1
targetGenDir 'src/main/java'
daoPackage "${android.defaultConfig.applicationId}.greendao"
} dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0' *** compile 'org.greenrobot:greendao:3.0.1'
}

二、编写Bean实体

UserInfo.java

@Entity
public class UserInfo {
@Id(autoincrement = true)
private long id;
private String userName;
private int age;
}

然后点击Build -> make project  (或Ctrl + F9)

生成对应的Dao文件

三、编写DBManager

DBManager.java

package com.jack.testmd.greendao;

import android.content.Context;

public class DBManager {
private static final String DB_NAME = "sport-db";
private UserInfoDao userInfoDao; private static DaoMaster.DevOpenHelper sHelper;
private static DaoSession sDaoSession; public static DBManager get() {
return SingletonHolder.instance;
} private static class SingletonHolder {
private static DBManager instance = new DBManager();
} public void init(Context context) {
if (sDaoSession == null) {
DaoMaster.DevOpenHelper sHelper = new DaoMaster.DevOpenHelper(context, DB_NAME);
DaoMaster sDaoMaster = new DaoMaster(sHelper.getWritableDatabase()); sDaoSession = sDaoMaster.newSession();
}
userInfoDao = sDaoSession.getUserInfoDao();
} private DBManager() {
} public DaoSession getDaoSession(){
return sDaoSession;
}
public UserInfoDao getUserInfoDao() {
return userInfoDao;
} public void closeConnection() {
closeHelper();
closeDaoSession();
} public void closeHelper() {
if (sHelper != null) {
sHelper.close();
sHelper = null;
}
} public void closeDaoSession() {
if (sDaoSession != null) {
sDaoSession.clear();
sDaoSession = null;
}
} }

四、业务逻辑中调用

个人写了两种调用方法:

方法一:直接在MainActivity中调用

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

方法二:封装DaoUtils类,然后在MainActivity中调用DaoUtils

Android 使用 Greendao 操作 db sqlite(2)-- 封装DaoUtils类

本博客地址: wukong1688

本文原文地址:https://www.cnblogs.com/wukong1688/p/10705622.html

转载请著名出处!谢谢~~

[Android] Android 使用 Greendao 操作 db sqlite的更多相关文章

  1. [Android] Android 使用 Greendao 操作 db sqlite(2)-- 封装DaoUtils类

    继续接上文: Android 使用 Greendao 操作 db sqlite(1)-- 直接在MainActivity中调用 布局文件同上文一致,这里就不贴了. 一.封装DaoUtils类 User ...

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

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

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

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

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

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

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

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

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

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

  7. android中的数据库操作

    如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...

  8. android中的数据库操作(转)

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

  9. Android -- Android JUint 与 Sqlite

    创建一个数据库                                                                           public PersonSQLit ...

随机推荐

  1. 关于360插件化Replugin Activity动态修改父类的字节码操作

    近期在接入360插件化方案Replugin时,发现出现崩溃情况. 大概崩溃内容如下: aused by: java.lang.ClassNotFoundException: Didn't find c ...

  2. python3 sys模块

    模块sys有关python运行环境的变量和函数: 常用方法: sys.argv:一个列表,包含脚本外部传入的参数,argv[0]为脚本名 sys.exit([arg]):退出当前程序,可指定返回值或错 ...

  3. 【CF809C】Find a car(动态规划)

    [CF809C]Find a car(动态规划) 题面 洛谷 CF 有一个无穷大的矩阵,第\(i\)行第\(j\)列的数是\((i-1)xor(j-1)+1\),\(q\)次询问,每次询问一个矩形内数 ...

  4. 如何用MarsEdit快速插入源代码

    开始用MarsEdit来写博文,客户端的,毕竟是要方便的多啊. 遇到的第一个问题就是:MarsEdit没有提供快速插入源代码的工具,而对于我这枚码农而言,这个就有点太杯具了. 简单研究了一下,发现Ma ...

  5. Nginx反向代理后端多节点下故障节点的排除思路

    仔细想来,其实是个非常简单的问题:开发和运维觉得两个后端节点跑起来压力太大了,就扩充了两个新的后端节点上去,这一加就出问题了,访问时页面间歇性丢失,这尼玛什么情况...想了半天没思路,查了Nginx的 ...

  6. Mybatis 缓存失效的几种情况

    1 不在同一个sqlSession对象中 下面比较下载同一个sqlSession和不在同一sqlSession下面的两种情况: 同一sqlSession: @Test public final voi ...

  7. MongoDB存储引擎选择

    MongoDB存储引擎选择 MongoDB存储引擎构架 插件式存储引擎, MongoDB 3.0引入了插件式存储引擎API,为第三方的存储引擎厂商加入MongoDB提供了方便,这一变化无疑参考了MyS ...

  8. A1006. Sign In and Sign Out

    At the beginning of every day, the first person who signs in the computer room will unlock the door, ...

  9. 使用WinForm Chart控件 制作饼装,柱状,折线图

    http://blog.csdn.net/dream2050csdn/article/details/53510340 chart控件的属性很多,主要用到Chart控件图表区域的属性有五个属性 1.A ...

  10. postman 抓包工具charles的使用

    1.直接打开charles,然后,如果有https的话,需要安装证书,然后,设置代理 2.如果不是https的,不需要设置代理,直接抓取就可以 先安装证书: 然后设置代理:               ...