Android(安卓)Ormlite 学习笔记2 -- 主外键关系
16lz
2021-01-26
以上一篇为例子,进行主外键的查询
定义Users.java 和 Role.java
Users -- Role 关系为:1对1 即父表关系
Role -- Users 关系为:1对多 即子表关系
下面看2个实体类,贴主要代码
-- Role.java
public ForeignCollection<Users> getUsers() { return users; } public void setUsers(ForeignCollection<Users> users) { this.users = users; } @ForeignCollectionField(eager = true) // 必须 private ForeignCollection<Users> users;
-- Users.java
@DatabaseField(foreign = true, foreignColumnName = "rid") private Role role; public Role getRole() { return role; } public void setRole(Role role) { this.role = role; }
1对1关系很简单,也很神奇的地方是直接调用就可以了。
/** * 一对一 * * @throws SQLException */ public void testSelect() throws SQLException { List<Users> datas = userDao.queryForAll(); for (Users user : datas) { Log.i("chenrui", "[name]" + user.getName()); Log.i("chenrui", "[Role]:" + user.getRole().getName()); } }
1对多关系,因为ForeignCollection<T> 继承了 这几个CloseableIterable<T>,Collection<T>,Iterable<T> 接口,所以ForeignCollection<T>是可以使用foreach遍历。
/** * 一对多 * * @throws SQLException */ public void testSelctMore() throws SQLException { ForeignCollection<Users> datas = roleDao.queryForId("1").getUsers(); if (!datas.isEmpty()) { for (Users user : datas) { Log.i("chenrui", "User:" + user.getName()); } } }
更多相关文章
- 【起航计划 014】2015 起航计划 Android(安卓)APIDemo的魔鬼步伐
- android service 例子(电话录音和获取系统当前时间)
- Android中的位运算的例子(一)
- android 日常迭代与维护总结一
- android侧滑效果,SlidingMenu配置
- Android(安卓)ApiDemos示例解析(11):App->Activity->Receive Resu
- Android(安卓)Fragment 间通信
- Android的嵌入式关系型SQLite数据库使用
- android 中的 window,view,activity具体关系