[Android] Android 使用 Greendao 操作 db sqlite
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的更多相关文章
- [Android] Android 使用 Greendao 操作 db sqlite(2)-- 封装DaoUtils类
继续接上文: Android 使用 Greendao 操作 db sqlite(1)-- 直接在MainActivity中调用 布局文件同上文一致,这里就不贴了. 一.封装DaoUtils类 User ...
- [Android] Android 使用 Greendao 操作 db sqlite(1)-- 直接在MainActivity中调用
继续接上文: Android 使用 Greendao 操作 db sqlite 布局文件: activity_test_green.xml <?xml version="1.0&quo ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite
Android数据库框架--GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文 Android数据库框架--ORMLite轻量级的对象关系映射 ...
- alexkn android第一行代码-8.sqlite使用
Android自带sqlite数据库,因此常见操作应该都掌握.包括数据库的创建/升级以及增删改查. 1.创建数据库 public class MyDatabaseHelper extends SQLi ...
- Android 学习笔记之如何使用SQLite数据库来保存数据...
PS:最近一阵子都在为考试复习...坑爹的计算机网络,复习了3天,最后该不会的还是不会...明天还考英语...真蛋疼... 学习内容: 1.使用SQLite数据库来保存数据... SQLite: ...
- android中的数据库操作
如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...
- android中的数据库操作(转)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- Android -- Android JUint 与 Sqlite
创建一个数据库 public PersonSQLit ...
随机推荐
- Codeforces 1045. A. Last chance(网络流 + 线段树优化建边)
题意 给你 \(n\) 个武器,\(m\) 个敌人,问你最多消灭多少个敌人,并输出方案. 总共有三种武器. SQL 火箭 - 能消灭给你集合中的一个敌人 \(\sum |S| \le 100000\) ...
- Leetcode 215. 数组中的第K个最大元素 By Python
在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 ...
- 用决策树(CART)解决iris分类问题
首先先看Iris数据集 Sepal.Length--花萼长度 Sepal.Width--花萼宽度 Petal.Length--花瓣长度 Petal.Width--花瓣宽度 通过上述4中属性可以预测花卉 ...
- 【BZOJ3561】DZY Loves Math VI (数论)
[BZOJ3561]DZY Loves Math VI (数论) 题面 BZOJ 题解 \[\begin{aligned} ans&=\sum_{i=1}^n\sum_{j=1}^m\sum_ ...
- CSS之FLex布局介绍
网页布局(layout)是CSS的一个重点应用. img 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如, ...
- 「NOI2016」优秀的拆分 解题报告
「NOI2016」优秀的拆分 这不是个SAM题,只是个LCP题目 95分的Hash很简单,枚举每个点为开头和末尾的AA串个数,然后乘一下之类的. 考虑怎么快速求"每个点为开头和末尾的AA串个 ...
- GuGuFishtion HDU - 6390 (杭电多校7E)
啊啊啊啊...全在纸上 字丑...算了算了 然后除法部分都用逆元就好了 还有逆元打表....学到了...牛逼 #include<map> #include<set> #incl ...
- CF1139D Steps to One(DP,莫比乌斯反演,质因数分解)
stm这是div2的D题……我要对不住我这个紫名了…… 题目链接:CF原网 洛谷 题目大意:有个一开始为空的序列.每次操作会往序列最后加一个 $1$ 到 $m$ 的随机整数.当整个序列的 $\gcd ...
- 20165223 《JAVA程序设计》第四周学习总结
20165223 <JAVA程序设计>第四周学习总结 教材学习内容总结 第五章要点 子类与继承 成员变量的隐藏和方法重写 super关键字 继承与多态 abstract类与abstract ...
- 借助baidu的jsonp接口,做一个自己的候选词组件
先观察 对接口进行提炼:https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=关键词&cb=回调函数 简单测试一下: <!DOC ...