我正在编写一个程序,该程序从用户对象输出名称和其他各种详细信息(名称,地址,id等)。用户对象是通过使用JDBC从mydb中填充的。我已经学会了如何映射一个结果集对象到我的用户对象,以及如何显示各种信息(名称等)从这个对象到屏幕。
我的查询是,我需要访问许多对象(有时全部:搜索,更新),我认为这可能是愚蠢的,使连接到数据库,接收我的结果集,并将其映射到一个对象,每次我需要一定的信息。相反,我认为我会从数据库中获取所有行并映射所有对象,然后将它们放入数组列表中,在那里我可以更容易地挑选出我想要的任何特定信息。
这是一种低效或糟糕的编码实践吗?这种逻辑是否存在巨大的缺陷?
缓存应用程序中的所有行有许多强烈的缺点:
- 它无法扩展:如果你有100万用户怎么办?如果每个用户有5个订单,参考7个产品,等等。你很快就会在内存中占用整个数据库,这是不可持续的。
- 更难正确执行:您必须同时处理多个请求,读取和修改用户。数据库事务为你做这些。
- 它强制你的应用成为数据库的独占所有者。如果任何其他应用程序(或脚本,或批处理)访问数据库,你的应用程序将不会意识到它,将显示陈旧的数据,并将产生错误,因为,例如,它将尝试更新不再存在的用户。
应用程序中的状态越多,就越难使其正确和快速。信任你的数据库:它速度快,能正确处理许多并发访问。如果开始变慢,那么考虑您的查询,使用适当的索引等。