在android中使用原始的SQLiteOpenHelper操作数据库显得过于繁琐,而且对于不是很熟悉数据库操作的人来说比较容易出现一些隐藏的漏洞。所以一般都会想到使用相关的ORMLite框架完成开发,类似于J2EE开发中的Hibernate和Mybatis等等,在提高开发效率的同时,也可以有效避免数据库操作对应用带来的潜在影响。
到现在为止,Android中ORM框架也已经有很多,比如ORMLite,Litepal, androrm,SugarORM, GreenDAO,ActiveAndroid, Realm等等。对于他们之间的对比,可能各有长短,所谓存在即为合理。其中,ORMLite应该是使用较为广泛的一个,接下来我将通过几篇文章,结合ORMLIte的官方文档和源代码对这个框架进行分析。才疏学浅,如果有不足的地方,还请批评指正。
ORMLite官网:
http://ormlite.com/,下载jar包和实例。将jar包加入项目中。
第一篇,我先结合官方实例和自己的demo让大家感受一下ORMLite的魅力,并熟悉整个流程。
尊重原创,转载请说明出处,谢谢! http://blog.csdn.net/oyangyujun
1. 注解属性和类名,对应数据库字段和表明。
2. 给定一个无参构造函数,以便查询返回实体对象。
@DatabaseTable(tableName = "person")
public class Person implements Serializable{
private static final long serialVersionUID = 1L;
@DatabaseField(generatedId = true)
int id;
@DatabaseField(canBeNull = true, defaultValue = "name")
String name;
@DatabaseField(canBeNull = true, defaultValue = "sex")
String sex;
@DatabaseField(canBeNull = true, defaultValue = "age")
String age;
@DatabaseField(canBeNull = true, defaultValue = "address")
String address;
@DatabaseField(canBeNull = true, defaultValue = "phone")
String phone;
@DatabaseField(canBeNull = true, defaultValue = "qq")
String qq;
@DatabaseField(canBeNull = true, defaultValue = "testField")
String testField;
@DatabaseField(canBeNull = true, defaultValue = "testField2")
String testField2;
public Person(){
}
二、生成数据库配置文件
1. 先在res/raw下创建文件ormlite_config.txt
2. 继承OrmLiteCongifUtil类创建DatabaseConfigUtil工具了类,这个工具类用于生成数据库结构信息。
public class DatabaseConfigUtil extends OrmLiteConfigUtil {
public static void main(String[] args) throws SQLException, IOException {
writeConfigFile("ormlite_config.txt");
}
}
3. 在java本地环境下运行该类,不能直接运行android项目。本地环境配置的方法是,右键-》Run Configurations进入运行配置面板如下,注意看是否为当前项目的该工具类。
4. 选择JRE,选中Alternate JRE,指定使用的JRE版本,官方文档中说1.5或者1.6,当然,高版本也是可以的。
5. 选择Classpath,选中Bootstrap Entries下的android,remove掉。切记保留User Entries下的文件。否则会报NoClassDefFoundError, 这里其实就是取消android应用程序的入口,直接将上面的工具类作为程序入口。