ORM数据库框架ActiveAndroid的特点和优点
- 基于ORM关系操作数据库
- 配置方便
- 几乎不需要编写任何SQL语句就能够包从和检索SQLite数据可记录
- 每个操作都封装一个类,如save()和delete()
- 用对象形式存取数据
什么是ORM框架
定义:
简单来说就是对象映射框架,ORM(Object Relational Mapping)框架采用元数据描述对象与关系映射细节,把对象持久化到数据库。
实现原理:
就是利用Java的反射机制把对象和数据记录映射关联起来。
ActiveAnroid的基本用法
基本用法
配置:
配置AndroidManifast的application的name属性,同时在meta-data标签中配置db的name和version;在自己的Appliction类中继承ActiveAndroid的Application。
xml
<manifast>
<application android:name="com........app.MyApplication>
<meta-data android:name="AA_DB_NAME" android:value="Pickrand.db"/>
<meta-data android:name="AA_DB_VERSION" androd:value="2"/>
<application/>
<manifast/>
public class MyApplication extends SomeLibraryApplication{
@Overide
public void OnCreate(){
super onCreate();
ActiveAndroid.initialize(this);
}
}
用法:
配置androidManifast.xml文件
配置Application,进行初始化
定义实体类item
package com.cn.moyu
import com.activeandroid.Model
import com.activeandroid.Xxxx
@Table(name="Items")//定义表
public class Item extends Model{
@Column(name="Name")//定义name列
public String name;//name列的属性为String
@Column(name="Category")
public Category category;
public Item(){//定义构造方法
}
public Item(String name,Category){
super();
this.name=name;
this.Category=Category;
}
}
定义Category类
package com....
import com....
@Table(name="Categoryes")
public class Category extends Model{
@Column(name="Name")
public String name;
}
在MainActivity中实现增删改查
package com.....
import com......
@Orerride
public void OnCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState):
setContentView(R.layout.main);
Category cate=new Category();
cate.name="OutLook"
cate.save();//保存数据
Item item=new Item();
item.name="lindai";
item.category=cate;
item.save();//保存数据
log.i("info",new Select().from(Item.class).where("Name=?,"LIndai")
.orderBy("Name ASC").execute());//查询数据
}
//删除数据方法一
Item item2=Item.load(Item.class,1);
item2.delete();//删除Item表中id为1的数据
//删除数据方法二
new Delete().from(Item.class).where("Name=?","Lindai").execute();
//修改数据同保存数据也是用save();
升级数据库(在数据库中添加表字段)
在raw下新建migrations文件夹,新建一个文件为update.sql,在其中书写SQL语句,如:ALTER TABLE Categorys ADD COLUMN Stuid INTEGER;
修改androidManifast.xml中meta-data下version的版本号
同时在java代码Category中也要做升级操作
//在Category中添加
@Column(name="Stuid")
public INTEGER Stuid;
优化检索
在androidManifast.xml中添加其他的meta-data标签
//指定该属性就可节约读取时间,提高效率
<meta-data android:name="AA_MODELL"
android:value="com.moyu.Category,com.moyu.Item“/>