gpt4 book ai didi

java - Android/SQLite 对象关系映射的简单替代方案

转载 作者:行者123 更新时间:2023-12-01 16:39:17 26 4
gpt4 key购买 nike

我正在寻找简单的技术来使 OOP 和 RDBMS 能够很好地协同工作。

我想让它尽可能简单,所以没有自动代码生成或像 ormlite 这样的 ORM 包,但也许只是 POJO,每个数据库表一个,具有返回游标的 fetchOne(int db_row_id) 和 fetchAll() 等方法。

我一直遇到的问题是在哪里放置在联接中查询两个或多个表的方法,因为代表一个表的 POJO 也必须具有与其他表一样多的知识。

我能想到的唯一替代方案是只使用一个类来处理 ORM,该类可能具有大约 50-100 个方法,每个方法在一个或多个表中执行自己的查询并返回一个普通的游标。

郁!!

最佳答案

我不喜欢我这样做的方式,但我通常创建一个代表每个表的类,然后为我的所有访问(CRUD 操作)创建“提供者”类。

例如,假设我有一个 GameState 类和一个 PlayerInfo 类,它们都代表数据库中的表。 GameState 可能有 List<PlayerInfo> 。我可以让我的 GameStateProvider 能够进行连接并填充我的 List<PlayerInfo> ,或者也有一个 PlayerInfoProvider 并将引用传递给我的 GameStateProvider 的 get 方法 - 我通常采用后者。代表数据库对象的 POJO 通常也有一个采用 Cursor 的构造函数。

我不喜欢这个解决方案,但它使我的所有类都保持最少的方法,并保持它们的可读性,并且彼此之间的绑定(bind)不会太紧密。

关于java - Android/SQLite 对象关系映射的简单替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5719784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com