欢迎使用CSDN-markdown编辑器

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“/>

ActiveAndroid的实际应用案例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值