Activeandroid笔记

自从接触了 hibernate 之后,才真正对 ORM (Object Relational Mapping) 框架有正确的认识。

所以就找了下关于 AndroidORM 框架学习学习,结果找到了比较热门的有:ActiveAndroidormlite ,因 ActiveAndroid 看起来比较可爱,就玩玩这个先吧。

ActiveAndroid托管在 github 的地址:

https://github.com/pardom/ActiveAndroid

官方使用教程:

https://github.com/pardom/ActiveAndroid/wiki/Getting-started
https://github.com/pardom/ActiveAndroid/wiki/Creating-your-database-model
https://github.com/pardom/ActiveAndroid/wiki/Saving-to-the-database
https://github.com/pardom/ActiveAndroid/wiki/Querying-the-database
https://github.com/pardom/ActiveAndroid/wiki/Type-serializers

http://stormzhang.github.io/openandroid/android/sqlite/2013/12/20/android-orm-tools-activeandroid/ (这个是中文)

官方在 github 写的的教程很详细,不重复写了。

主要遇到的问题:

1、涉及多表插入数据的时候,每一张表都需要 save() 一次。
如:

1
2
3
4
5
6
7
8
9
School school=new School();
school.name=schoolName;
school.save();    //save
				
User user=new User();
user.name=username;
user.password=password;
user.school=school;  // school 在上面 save 之后,在这里还要赋一次给 user,才能产生关联
user.save();   // save

查询的代码:

1
2
3
public static User getByUsername(User user){
	return new Select().from(User.class).where("Name=?", user.name).executeSingle();
}

查询数据库返回 User 对象

1
2
User result=DB.getByUsername(user);
"password:"+result.password+"school:"+result.school.name

直接取出对应值即可。