自从接触了 hibernate
之后,才真正对 ORM (Object Relational Mapping)
框架有正确的认识。
所以就找了下关于 Android
的 ORM
框架学习学习,结果找到了比较热门的有:ActiveAndroid
和 ormlite
,因 ActiveAndroid
看起来比较可爱,就玩玩这个先吧。
ActiveAndroid
托管在 github 的地址:
官方使用教程:
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-serializershttp://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 |
直接取出对应值即可。