• 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 GreenDAO3.0——entity建模,androidgreendao3.0

Android GreenDAO3.0——entity建模,androidgreendao3.0

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

网友通过本文主要向大家介绍了android uml建模工具,android 3d建模,android 建模,android建模工具,android studio 3.0等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android GreenDAO3.0——entity建模,androidgreendao3.0


引言

在项目中,为了使用GreenDAO的自动生成DAO class的功能,我们必须建立entity,该entity通过java注解标识。

                                                           

 

Schema是数据库对象集合,我们可以通过gradle插件配置GreenDAO,除此之外,我们至少需要配置Schema的版本:

// In the build.gradle file of your app project:
android {
...
}

greendao {
    schemaVersion 2
}

我们不仅可以配置schemaVersion,还可以配置其他的属性:

daoPackage:DAOs、DAOMaster和DAOSession生成的目录,默认是entity所在的目录

targetGenDir:默认在build/generated/source/greendao

其他......(貌似不重要)

@Entity

在Android项目中,GreenDAO通过注解表征entity:

public class User {
    @Id
    private Long id;
 
    private String name;
 
    @Transient
    private int tempUsageCount; // not persisted
 
   // getters and setters for id and user ...
}

我们通过@Entity对User进行注解,GreenDAO通过识别@Entity在编译期生成支持数据库的对象。                

@Entity还支持一些属性,对该对象进行描述,此时我们对上述代码进行扩展:

@Entity(
        // If you have more than one schema, you can tell greenDAO
        // to which schema an entity belongs (pick any string as a name).
        schema = "myschema",
        
        // Flag to make an entity "active": Active entities have update,
        // delete, and refresh methods.
        active = true,
        
        // Specifies the name of the table in the database.
        // By default, the name is based on the entities class name.
        nameInDb = "AWESOME_USERS",
        
        // Define indexes spanning multiple columns here.
        indexes = {
                @Index(value = "name DESC", unique = true)
        },
        
        // Flag if the DAO should create the database table (default is true).
        // Set this to false, if you have multiple entities mapping to one table,
        // or the table creation is done outside of greenDAO.
        createInDb = false,
 
        // Whether an all properties constructor should be generated.
        // A no-args constructor is always required.
        generateConstructors = true,
 
        // Whether getters and setters for properties should be generated if missing.
        generateGettersSetters = true
)
public class User {
  ...
}

基本属性

@Entity
public class User {
    @Id(autoincrement = true)
    private Long id;
 
    @Property(nameInDb = "USERNAME")
    private String name;
 
    @NotNull
    private int repos;
 
    @Transient
    private int tempUsageCount;
 
    ...
}

 @Id:对于数据库来说,在数据表中作为主键,类型默认为long型,autoincrement =true使得id自增。

@Property :将java class中的字段名映射为Property 提供的名字,在上述代码中就是将name映射为USERNAME,默认情况下,如果字段是驼峰命名转为下划线命名,如customName 转换为                                CUSTOM_NAME。

@NotNull: 标记基本类型为非空。

@Transient  :表示java class中的该字段不会存储在数据库中,是一个缓存值。

索引

如果我们不喜欢,GreenDAO定制的默认索引,我们可以自行设置新的索引,这是需要属性@index。

@Entity
public class User {
    @Id private Long id;
    @Index(unique = true)
    private String name;
}

id是数据库的唯一索引,即主键。但我们可以通过unique = true,指定name索引也是唯一的。

 

 

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

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

  • Android GreenDAO3.0——entity建模,androidgreendao3.0

相关文章

  • 2017-08-23关于 android canvas 的简单总结
  • 2017-05-26Android动画原理总结
  • 2017-05-26我的android学习经历7,android学习经历7
  • 2017-05-26PopupWindow的使用,PopupWindow使用
  • 2017-05-26Android进程通信之两种序列化方式分析
  • 2017-05-26Android 高仿华为手机Tab页滑动导航效果
  • 2017-05-26安卓第十六天笔记-音频与视频播放,安卓第视频播放
  • 2017-05-26Android 上千实例源码分析以及开源分析
  • 2017-05-26Android之利用HTTP网络通信实现与PHP的交互(三),android网络通信
  • 2017-05-26使用AIDL调用远程服务设置系统时间,aidl调用系统

文章分类

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

最近更新的内容

    • AS400银行核心系统开发中的技术总结--交易和组件写法
    • android开发学习——小细节注意,android开发细节
    • andriod绘制图形,andriod绘制
    • nginx使用let’s encrypt https证书并启用http2的使用记录
    • Swift开发iOS应用(1)列表的实现
    • android内核剖析,android内核
    • Android百度地图API集成三《搜索》,android《搜索》
    • ViewPager实现滑动翻页效果,viewpager滑动翻页
    • Android 知识Tips,android知识tips
    • Android SDK目录及版本号区别

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

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