参考:http://blog.csdn.net/cjjky/article/details/7096987

ormlite 方法查询:http://ormlite.com/javadoc/ormlite-core/com/j256/ormlite/dao/Dao.html

第一步:

下载ormlite-android-4.41.jar和ormlite-core-4.41.jar两个jar包,放入工程的libs文件夹内,然后右键 builder path-->add path

第二步:对你要持久化的类进行注解(记住.提供一个默认无参构造)

@DatabaseTable(tableName="student")  tableName 表明public class Student {public static final String ID="student_id";public static final String NAME="student_name";public static final String LASTNAME="student_lastname";public static final String RESOURCE="student_resource";public static final String TEACHER_ID="tacher_id";@DatabaseField(generatedId=true,useGetSet=true,columnName=ID)private int id;@DatabaseField(foreignColumnName=Teacher.ID,foreign=true,foreignAutoCreate=true)private Teacher teacher_id;@DatabaseField(useGetSet=true,columnName=NAME)private String name;@DatabaseField(useGetSet=true,columnName=LASTNAME)private String lastName;@DatabaseField(useGetSet=true,columnName=RESOURCE)private doubleresource; 一系列的set get 方法...

过一会将详细的列出各种注解的意思,这里只需要知道 @DatabaseTable 指定类对应的表明,@DatabaseField 对应的字段名,

第二步:

创建一个database helper类,继承OrmLiteSqliteOpenHelper 实现 onCreate 和onUpgrade ,这个类类似于 android 的SQLiteOpenHelper方法 ,大家应该知道这个类的作用了,创建删除数据库应该使用TableUtils工具类的方法.一会下面介绍

第二步:分两种情况,一个直接在Activity中使用OrmLite创建的dao类

(1)这时候,你的Activity类应该实现OrmLiteBaseListActivity, OrmLiteBaseService或者 OrmLiteBaseTabActivity,然后在类中使用getHelper().getDao(Class clazz);创建你的DAO 对象,然后使用其中的方法对数据进行操作.

(2)有些人和我一样.不喜欢将DAO层和Activity层放在一起,喜欢讲操作数据库的类单独放在DAO包中,形成DAO层,貌似是web开发留下的..........................习惯

这时候,我们需要在自定义的DAO中使用OrmLiteSqliteOpenHelperhelper=OpenHelperManager.getHelper(context,BasicDAO.class);方法来得到helper对象,这个对象需要保持,根据文档上说在销毁对象的时候需要OpenHelperM anager.releaseHelper();使用这个方法来释放掉helper对象,然后使用helper对象的getDao(Student.class);方法得到DAO类,

然后我们就可以使用DAO类,完成各种各样的数据库 增删改操作.

例如:

public class StudentDAO{Dao dao=null;private Context context=null;OrmLiteSqliteOpenHelper helper=null;        public StudentDAO(Context context) {this.context=context;// TODO Auto-generated constructor stubhelper=OpenHelperManager.getHelper(context,BasicDAO.class);try {dao=helper.getDao(Student.class);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}        @Overrideprotected void finalize() throws Throwable {// TODO Auto-generated method stubOpenHelperManager.release();//释放掉helpersuper.finalize();}}

接下来介绍..各种各样的注解

首先介绍 @DatabaseTable

参数:tableName指定表明,没有将使用类名作为表明

@DatabaseField

cloumnName:指定字段名,不指定则变量名作为字段名 canBeNull:是否可以为null
dataType:指定字段的类型 defaultValue:指定默认值 width:指定长度
id:指定字段为id generatedId:指定字段为自增长的id,不能id,generatedIdSequence通用 foreign 指定这个字段的对象是一个外键,外键值是这个对象的id
useGetSet:指定ormlite访问变量使用set,get方法默认使用的是反射机制直接访问变量 throwIfNull,如果空值抛出异常 persisted:指定是否持久化此变量,默认true
unique:字段值唯一 uniqueCombo整列的值唯一 index:索引
uniqueIndex 唯一索引 foreignAutoRefresh 外键值,自动刷新 foreignAutoCreate 外键不存在时是否自动添加到外间表中
foreignColumnName外键字段指定的外键表中的哪个字段

@ForeignCollectionField 表示这个表中的数据在其他表中是外键(其他表的某个字段使用@DatabaseField(foreignColumnName=一个表的id键名,foreign=true)

eager 表示该集合是在初始化这个对象的时候,是否讲对象取出还是在遍历的时候才取出,默认false遍历的时候才取出,size()方法也会引起遍历

这个注解注解的字段只能是ForeignCollection<T> or Collection<T> 对象

TableUtils

接下来介绍TableUtils完成对数据中的表进行创建,删除,清空表格,只要看一下它的静态方法.做过程序的应该都会

Dao<T,V>

包含两个泛型,第一个泛型表DAO操作的类,第二个表示操作类的主键类型

主要方法:

create:插入一条数据

createIfNotExists:如果不存在则插入

createOrUpdate:如果指定id则更新

queryForId:更具id查找

update 查找出数据

refresh的解释:If you want to use other elds in the Account, you mustcall refresh on the accountDao class to get the Account object lled in.

delte 删除数据

queryBuilder() 创建一个查询生成器:进行复杂查询

deleteBuilder() 创建一个删除生成器,进程复杂条件删除

updateBuilder() 创建修条件生成器,进行复杂条件修改

条件查找器DeleteBuilder,QueryBuilder,UpdateBuilder

查找器是帮助拼接条件语句的.比如查找器中有 where()方法 and()方法 eq()方法 lt()方法 qt()方法 between方法这些方法很直观..很容易都明了什么意思

最后使用prepare()方法生成条件使用DAO.query || DAO.delete|| DAO.update 方法执行

可以使用查找生成器QueryBuilder 的 orderby limit offset 方法进行排序,分页,

更多相关文章

  1. android中退出整个app应用程序
  2. Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android(安
  3. JSONObject 保存和传送 数组数据 ,如int[] ,double[] ,String[]..
  4. Android(安卓)-- View
  5. Android(安卓)开发笔记——通过 Intent 传递类对象
  6. Android按钮实现点击事件的四种方式
  7. Android(安卓)Appliction 使用解析
  8. android 获取view在屏幕中的位置
  9. Android进行数字签名的方法

随机推荐

  1. Android,通用ListAdapter
  2. Android中SQLite的增删改查
  3. Android Material Design按钮样式设计
  4. PopupWindow设置AnimationStyle
  5. android tcp server
  6. Android(安卓)属性动画看这篇就够了
  7. Android 双缓冲
  8. android 自定义评分
  9. android sdk更新报错 解决办法
  10. Sql语句在Android的用法