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. 【 HDU 1538 】A Puzzle for Pirates (海盗博弈论)

    BUPT2017 wintertraining(15) #5D HDU 1538 偷懒直接放个果壳的链接了,感觉比网上直接找这题的题解要更正确.易懂. 海盗博弈论 代码 #include <cs ...

  2. 聊聊GarbageCollectionNotificationInfo

    序本文主要研究一下GarbageCollectionNotificationInfo CompositeDatajava.management/javax/management/openmbean/C ...

  3. UVA10559 Blocks(区间dp)

    有n个带有颜色的方块,没消除一段长度为x的连续的相同颜色的方块可以得到x^2的分数,让你用一种最优的顺序消除所有方块使得得分最多. 输入格式 第一行包含测试的次数t(1≤t≤15) 每个案例包含两行. ...

  4. Zabbix-proxy安装部署

    原文链接:https://www.cnblogs.com/irockcode/p/6754659.html 环境: 因为公司需要监控远程客户机,但server端无法主动连接agent端,客户端可以连接 ...

  5. linux(fedora) 第三课

    树形打印所有进程名:pstree pstree | grep pstree -A2 -B2(查看pstree前后两行) NI的值[-20,20) nice(改变NI的值):改变程序优先级 nice - ...

  6. This license xxx has been cancelled 解决

    上节回顾:JetBrains全家桶破解思路 hosts屏蔽一下即可,Linux是:/etc/hosts 0.0.0.0 account.jetbrains.com 重新输入Code即可,最后补一个地址 ...

  7. js 时间日期格式转换

    Date.prototype.Format = function(formatStr) { var str = formatStr; var Week = ['日', '一', '二', '三', ' ...

  8. Ubuntu更改主目录文件名为英文

    Ubuntu的语言设置成中文之后,自己主目录下的桌面.下载.文档等文件夹全部为中文汉字,使用终端时,输入十分不方便.需要把文件夹改成英文,而不更改系统语言. 在终端中输入以下命令 export LAN ...

  9. CSS解决字母不换行

    通过百度,查找解决方案 1. word-break:break-all;只对英文起作用,以字母作为换行依据2. word-wrap:break-word; 只对英文起作用,以单词作为换行依据

  10. P3378 堆の模板

    如果不是可并堆/带修堆/卡常题,一般都用优先队列实现. 很多O(nlogn)过不了的题都可以用蚯蚓的套路来实现!!! 优先队列带修用延迟删除法. 堆,可以简单的用优先队列来实现,也可以自己手打. #i ...