Android Sqlite 数据库通过 ORM 的方式操作起来会方便很多,效率也会提升很多。本课程将会详细讲解 ORM 数据库框架的使用,提升 Sqlite 的操作和开发效率。
1.ORM 数据库框架 ActiveAndroid 的特点和优势
2.ActiveAndroid 的基本用法
3.ActiveAndroid 的实际应用案例
本课时介绍 ORM 是什么及 ActivityAndroid 的特点和优势。
什么是ORM框架:
ORM (Object Relational M apping)框架采用元数据来描述对象与关系映射细节。
把对象持久化到数据库中。
就是利用Java的反射机制把对象和数据库记录映射关联起来。
ActiveAndroid的特点和优势:
· 基于ORM 关系操作数据库
· 配置方便
· 几乎不需要编写任何SQL语句就能够保存和检索SQLite数据库记录
· 每个操作都封装为一个类,如save()和delete()
· 对象形式存取数据
本课时主要介绍 ActiveAndroid 的基本配置和增删改查数据的使用。
基本用法:
1. 配置:
配置AndroidM anifest的application的name属性,同时在meta-data标签中配置db的name和version;
自定义一个Application类可继承系统的Application或继承第三方的Application,然后再onCreate中进行初始化。
<manifest ... >
<application
...
android:name="com.nf.activeandroid.MyApplication">
...
<meta-data android:name="AA_DB_NAME" android:value="Pickrand.db" />
<meta-data android:name="AA_DB_VERSION" android:value="2" />
</application>
</manifest>
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
ActiveAndroid.initialize(this);
}
}
2 . 定义实体类
实体类需继承Model,可自定义表名和属性对应的字段名。
@Table(name = "Items")
public class Item extends Model {
@Column(name = "Name")
public String name;
@Column(name = "Category")
public Category category;
public Item() {
super();
}
public Item(String name, Category category) {
super();
this.name = name;
this.category = category;
}
}
@Table(name = "Categoryes")
public class Category extends Model {
@Column(name = "Name")
public String name;
}
3 . 进行增删改查操作
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//保存数据和修改数据是用的同一方法,如果表里存在这个对象的话在保持是他会自动进行修改,如果不存在就是新增一条数据
Category cate = new Category();
cate.name = "OutLook";
cate.save();
Item item = new Item();
item.name = "Lilei";
item.category = cate;
item.save();
//多种删除操作
// Item item2 = item.load(Item.class, 1);
// item2.delete();
//Item.delete(type, id);
new Delete().from(Item.class).where("Name=?","Lilei").execute();
//对数据的查询方法
Log.i("info",new Select().from(Item.class).where("Name=?", "Lilei").orderBy("Name ASC").execute().size()+"");
}
}
ActiveAndroid数据库的升级
需要在assets目录中新建一个名为migrations的文件夹,然后再里面新建一个名为“下一个数据库版本”的sql文件(例如下一个数据库版本为2,则文件为 2.sql)在里面就可以写升级的一些语句,假设有一个需求要在Categoryes中新增一个字段StuId。
assets ——》migrations ——》2.sql
ALTER TABLE Categoryes ADD COLUMN StuId INTEGER;
同时需要在Category类中添加该属性
@Column(name = "StuId")
public Integer stuId;
这样在运行的时候会往Categoryes增加一个字段,此时数据库的升级就完成了!
注:还可以在项目的清单文件定义其他的meta-data,如:
<meta-data
android:name="AA_MODELL"
android:value="com.nf.activeandroid.Item,com.nf.activeandroid.Category" />
作用是方便ActiveAndroid扫描实体类,如果不添加该属性的话ActiveAndroid每次都会遍历项目中的类会比较耗费时间并且降低效率。
本课时会通过一个实际案例演示 ActiveAndroid 的具体实践操作。
实现效果:
使用 ActiveAndroid 建立学生信息库,实现对学生信息库的增删改查操作。
涉及知识点:
ActiveAndroid配置、实体类编写、数据库和表的建立、增删改查操作。
本章节都是在上两章的基础上编写的一个完整案例这里就不一一介绍了,大家可以下载源码查看
本套课程中我们学习了Android O RM 数据库的使用,你应当掌握了以下知识:
· 什么是ORM ,有什么优势
· ActiveAndroid的配置和基本用法
· 能够简单的实际操作应用
你可以使用这些技术来制作一个基于ORM 数据库框架开发的相关App,如果想继续提高,你可以继续其源码的具体实现等。