• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android 操作数据库的框架——greenDAO的学习

Android 操作数据库的框架——greenDAO的学习

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了Android 操作数据库的框架——greenDAO的学习等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android 操作数据库的框架——greenDAO的学习


greenDAO的使用


简介

官网给出如下介绍:

\
greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。


在使用greenDAO的时候需要创建两个project,其中一个是java工程,它用来生成特定于您的项目的代码域(即生成了bean对象和操作数据库的dao)

核心的classes

\

DaoMaster:
DaoMaster保存了数据库对象和管理DAO类的classes,其提供了一些静态方法创建和删除表,内部类OpenHelper和DevOpenHelper 实现了SQLiteOpenHelper并创建数据库的框架。

DaoSession:
管理所有可用的DAO对象,可以通过getter方法获得。DaoSession还提供了一些通用的持久性方法比如插入、加载、更新,刷新和删除实体。

DAOs:
数据访问对象,每一个实体类都有对应的greenDAO对象。

Entities:
实体类对象

核心greenDAO类初始化数据库

helper = new DaoMaster.DevOpenHelper(this, "notes-db", null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();

主要优点

greenDAO 性能远远高于同类的 ORMLite,具体测试结果可见官网 greenDAO 支持 protocol buffer(protobuf) 协议数据的直接存储,如果你通过 protobuf 协议与服务器交互,将不需要任何的映射。 与 ORMLite 等使用注解方式的 ORM 框架不同,greenDAO 使用「Code generation」的方式,这也是其性能能大幅提升的原因。

使用方法

1.新建Android project并在main目录下新建文件夹java-gen(存放自动生成bean和dao)

2.在build.gradle中配置

//buildTypes{}中配置
sourceSets {
    main {
        java.srcDirs = ['src/main/java', 'src/main/java-gen']
    }
}

//dependencies{}中配置
compile 'de.greenrobot:greendao:2.1.0'

\

3.新建java project——greenDAO_java

在build.gradle中添加

compile 'de.greenrobot:greendao-generator:2.1.0'

创建模式对象,并添加实体(表)

public class Generator {
    public static void main(String[] args) throws Exception {

        int version=1;
        String defaultPackage="test.greenDAO.bean";
        //创建模式对象,指定版本号和自动生成的bean对象的包名
        Schema schema=new Schema(version,defaultPackage);
        //指定自动生成的dao对象的包名,不指定则都DAO类生成在"test.greenDAO.bean"包中
        schema.setDefaultJavaPackageDao("test.greenDAO.dao");

        //添加实体
        addEntity(schema);

        String outDir="D:/adt-bundle-windows-x64/workspace/studio/frame/study_demo/testgreendao/src/main/java-gen";
        //调用DaoGenerator().generateAll方法自动生成代码到之前创建的java-gen目录下
        new DaoGenerator().generateAll(schema,outDir);

    }

    private static void addEntity(Schema schema) {
        //添加一个实体,则会自动生成实体Entity类
        Entity entity = schema.addEntity("Entity");
        //指定表名,如不指定,表名则为 Entity(即实体类名)
        entity.setTableName("student");
        //给实体类中添加属性(即给test表中添加字段)
        entity.addIdProperty().autoincrement();//添加Id,自增长
        entity.addStringProperty("name").notNull();//添加String类型的name,不能为空
        entity.addIntProperty("age");//添加Int类型的age
        entity.addDoubleProperty("score");//添加Double的score
    }
}

4.运行java代码,自动在Android project的java-gen目录下生成bean类和DAO类

\

5.新建MyApplication继承Application,并在Manifest文件中配置

public class MyApplication extends Application{

    public DaoSession daoSession;
    public SQLiteDatabase db;
    public DaoMaster.DevOpenHelper helper;
    public DaoMaster daoMaster;

    @Override
    public void onCreate() {
        super.onCreate();
        setupDatabase();
    }

    private void setupDatabase() {
        //创建数据库
        // 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
        // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
        helper = new DaoMaster.DevOpenHelper(this, "test", null);
        //得到数据库连接对象
        db = helper.getWritableDatabase();
        //得到数据库管理者
        daoMaster =new DaoMaster(db);
        //得到daoSession,可以执行增删改查操作
        daoSession = daoMaster.newSession();
    }

    public DaoSession getDaoSession() {
        return daoSession;
    }

    public SQLiteDatabase getDb() {
        return db;
    }

}

6.编写MainActivity中的代码,实现用greenDAO进行数据库的操作

布局文件




    

        

        

        

        
    

    

初始化视图

tv_id = (TextView)



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-26Android 缓存类LruCache源码分析
  • 2017-08-0258同城Android端HTTPS实践之旅
  • 2017-05-26深入理解 Android 之 View 的绘制流程,androidview
  • 2017-05-222.5.6 ViewFlipper(翻转视图)的基本使用
  • 2017-05-26安卓中Paint类和Canvas类的方法汇总,安卓中canvas
  • 2017-05-26Android studio .gitignore 文件的内容,android.gitignore
  • 2017-05-26Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例,phonegapcordova
  • 2017-05-26Android studio Error occurred during initialization of VM 问题解决,initializationofvm
  • 2017-05-26安卓开源项目周报0104,安卓开源项目0104
  • 2017-05-26关于TCP MSS的内核设置

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android中AsyncTask的使用详解
    • Android中点击事件的实现方式,android事件
    • 谷歌电子市场9--详情界面,谷歌电子市场9--
    • 对View的onMeasure()方法的进一步研究,viewonmeasure
    • SDK manager.exe 运行时报错:系统找不到指定的文件 android.bat,sdkmanager.bat
    • redis一例连接池连接不上的故障及解决
    • 回顾自定义view三个构造函数,回顾view构造函数
    • activity的横屏和竖屏设置,activity
    • Android学习笔记-开关按钮ToggleButton和开关Switch,togglebuttonswitch
    • 一个现代化的JSON库Moshi针对Android和Java,jsonandroid

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有