[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
转载请著名出处!谢谢~~