【问题标题】:Mapping Objects From Resultsets and efficiency从结果集中映射对象和效率
【发布时间】:2014-03-21 20:06:24
【问题描述】:

我正在开发一个程序,该程序从用户对象输出名称和各种其他详细信息(名称、地址、id 等)。用户对象是通过使用我的数据库中的 JDBC 填充的。我已经学会了如何将结果集对象映射到我的用户对象以及如何从该对象显示各种信息(名称等)到屏幕上。

我的查询是我将需要访问许多对象(有时是所有对象:用于搜索、更新),我认为每次连接到数据库、接收我的结果集并将其映射到一个对象可能很愚蠢需要某些信息。相反,我认为我会从数据库中获取所有行并映射所有对象,然后将它们放入一个数组列表中,在那里我可以更轻松地挑选出我想要的任何特定信息。

这是一种低效或糟糕的编码实践吗?这个逻辑有很大的缺陷吗?

【问题讨论】:

标签: java jdbc mapping resultset


【解决方案1】:

缓存应用程序中的所有行有很多缺点:

  • 它无法扩展:如果您有 100 万用户怎么办?如果每个用户有 5 个订单,引用 7 个产品等等,你会很快在内存中得到完整的数据库,这是不可持续的。
  • 更难做到正确:您必须同时处理多个读取和修改用户的请求。数据库事务会为您做到这一点。
  • 它强制您的应用程序成为数据库的唯一所有者。如果任何其他应用程序(或脚本或批处理)访问数据库,您的应用程序将不会意识到它,将显示陈旧的数据,并会产生错误,因为例如,它会尝试更新不存在的用户没有了。

应用程序中的状态越多,就越难使其正确和快速。相信您的数据库:它速度很快,并且可以正确处理许多并发访问。如果它开始变慢,请考虑您的查询,使用适当的索引等。

【讨论】:

  • 非常感谢 JB,这是一个小型的大学数据库,但这并没有让我接受你的观点/注意你的回答。我会听取你的建议,以不偷懒的方式去做,然后分别打电话。感谢您的回答
  • 如果它是一个小型大学数据库,那么尝试优化不需要的东西就更没有意义了。
猜你喜欢
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 2011-01-26
  • 2017-07-26
  • 1970-01-01
相关资源
最近更新 更多