android 连接mysql orm_Android 使用ORMLite 操作数据库

第一步:

下载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中使用 OrmLiteSqliteOpenHelper helper=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 stub

helper=OpenHelperManager.getHelper(context,BasicDAO.class);

try {

dao=helper.getDao(Student.class);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Override

protected void finalize() throws Throwable {

// TODO Auto-generated method stub

OpenHelperManager.release();//释放掉helper

super.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 or Collection 对象

TableUtils

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

Dao

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

主要方法:

create:插入一条数据

createIfNotExists:如果不存在则插入

createOrUpdate:如果指定id则更新

queryForId:更具id查找

update 查找出数据

refresh的解释:If you want to use other elds in the Account, you must call 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 方法进行排序,分页,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值