Android数据库ORMLite框架的注解
来源:互联网 发布:下载windows系统的网站 编辑:程序博客网 时间:2024/05/16 01:43
今天老师讲解了出去SQLite数据库之外的另一个数据库框架ORMLite,用习惯了SQLite数据库之后,用该框架在注解上有点麻烦,所以在网上查了一下注解,分享给大家
对于 如何使用
1 配置你的Class
为了配置你的class使其持久化,你需要做下面几步:
①添加@DatabaseTable 注解到你每个需要持久化的类的顶部。你也可以用@Entity。
②添加@DatabaseField 注解到你需要持久化的字段的上面。你也可以使用@Column和其他的。
③为每个class添加一个无参的构造器,并且构造器在包内是可见的。
1.1 添加ORMLite 注解
自从java5开始,注解是有效的特殊代码标识,它提供meta信息包括类、方法或成员变量。把指定的类和成员变量存入数据库,ORMLite既支持它自己的注解(@DatabaseTable和 @DatabaseField)也支持很多来自javax.persistence包中标准的注解。注解是配置你的class最简单的方式,当然你也可以使用java代码或者Spring xml(Spring是个框架,更多信息google一下)对class进行配置。
用ORMLite注解,对每个你想要持久化到SQL数据库的java类你都需要添加@DatabaseTable注解到public class 这一行的正上方。每个被这些注解标记过的class都将持久化到它自己的数据库表中。例如:
@DatabaseTable(tableName = "accounts")public class Account {...
@DatabaseTable注解可以有个可选的tableName 参数,也就是这个类对于的表名。如果没有特别指出,那么这个类名将默认作为表名。使用示例中的Account的对象都将会作为一条记录持久化到数据库名为account的表中。这将会在DaoManager实例化内部Dao的时候使用到。
除此之外,对于每个class你需要添加@DatabaseField注解到class的成员变量上,这个类是需要持久化到数据库的。每个成员变量都将被作为数据库中记录的一个字段进行持久化。示例:
@DatabaseTable(tableName = "accounts")public class Account {@DatabaseField(id = true)private String name;@DatabaseField(canBeNull = false)private String password;...
①name字段,它是一个字符串并且是数据库中记录的唯一标识(主键)。在上面的示例中,account表的每条记录都有两个字段:
②password字段,它也是一个字符串,它不能为null。
@DatabaseField注解可以用下面的一些成员:(对常用的字段进行翻译,其他的参考原文)
常用的注解
成员名
数据类型
描述
columnName
String
数据库的列名。如果你没有设置这个成员名,会用标准的形式代替它。
dataType
字段的数据类型。通常情况下,数据类型是从java类的成员变量获取的,并不需要进行特殊指出。它相当于是SQL的数据类型。
defaultValue
String
当我们在表中创建新的记录时的一个字段的默认值。默认情况下是没有这个值的。
width
Integer
字段的宽度,主要用于字符串字段。默认是0,意味着采用默认的数据类型和具体的数据库的默认情况。对于字符串以为在255个字符即使有些数据库并不支持。
canBeNull
Boolean
字段是否能被分配null值。默认是true。如果你设置成false,那么你每次在数据库中插入数据是都必须为这个字段提供值。
id
Boolean
这个字段是否是id,默认是false。在一个class中只有一个成变量可以有这个值。id字段是一条记录的唯一标识而且是必需的,只有generatedId和 generatedIdSequence其中之一。
generatedId
Boolean
字段是否自动增加。默认为false。类中的一个成员变量设置了这个值,它告诉数据库每添加一条新记录都自动增加id。当一个有generatedid的对象被创建时使用Dao.create()方法,数据库将为记录生成一个id,它会被返回并且被create方法设置进对象。
generatedIdSequence
String
序列编号的名字,这个值在生成的时候会被使用。和generatedId相似,但是你能够指定使用的序列名称。默认是没有的。一个class中只有一个成员变量可以设置这个值。这仅仅在数据库需要序列生成id时才需要它。如果你选择使用generatedId代替它,那么代码将自动增加序列名。
其他注解
foreign
throwIfNull
useGetSet
persisted
unknownEnumName
format
uniqueIndexName
allowGeneratedIdInsert
foreignAutoRefresh
columnDefinition
unique
uniqueIndex
uniqueCombo
indexName
index
uniqueIndexName
version
maxForeignAutoRefreshLevel
foreignColumnName
foreignAutoCreate
- Android数据库ORMLite框架的注解
- Android数据库ORMlite框架
- Android数据库ORMlite框架
- Android 数据库框架ormlite
- Android数据库框架ORMLite
- Android数据库框架ORMLite的学习笔记
- android数据库框架ormlite的使用
- Android ORMLite 框架的入门用法-数据库
- Android数据库框架-----ORMLite 的基本用法
- Android基于ormlite框架的数据库加密
- Android 数据库框架OrmLite的常规使用
- Android数据库ORMlite框架详解
- Android Ormlite数据库框架解析
- Android 数据库框架ormlite(一)
- android数据库持久化框架, ormlite框架,
- 混淆android的第三方数据库框架Ormlite
- 开源框架-ormlite-android数据库的使用
- Android数据库框架-----ORMLite关联表的使用
- U盘移植PE系统
- poj 3311 Hie with the Pie (DP)
- 互不干扰
- c++线程注入学习
- Java 集合系列15之 Set架构
- Android数据库ORMLite框架的注解
- Linux Makefile 详细语法
- 微信”发现“页面布局浅谈
- 黑马程序员---OC学习笔记之NSDictionary的介绍及使用
- SDK更新错误解决办法
- 原点 中心点
- 自定义ProgressBar的加载效果
- javascript事件冒泡
- BitmapFactory.decodeFile内存溢出和变相解决方案