【问题标题】:java classes and database queriesjava类和数据库查询
【发布时间】:2013-04-03 21:49:33
【问题描述】:

谁能解释一下解决这个问题的最佳方法。

假设我有三个班级

1.人

2.地点

3.车辆

我有一个 DAO 方法,它需要在执行查询后从每个类返回部分或全部这些属性。

我该如何做到这一点?创建一个类 PersonVenueVehicle 并将其作为对象返回以获取实例字段值似乎是非常错误的。

我被告知数据库实体必须由类反映,如果是这种情况,它是如何实现的

【问题讨论】:

  • 它们之间的关系如何?
  • 您是否已经拥有数据库或只是尝试建立它?
  • 创建一个包含这些类型的新对象,如果不持久化,则不必是实体。
  • 根据您在问题中的措辞和问题本身,我想说您应该从阅读书籍或在网上查找和学习一些有关 ORM(对象关系映射)的教程开始。
  • 我有一个数据库。我将 servlet 和 jsp 与 tomct/mysql 一起使用。没有框架,只有我自己的 MVC

标签: java database dao


【解决方案1】:

试试 Spring-ish 解决方案。除了你的三个类之外,你还可以有 3 个 DAO 类,每个类一个。但是您有任务要执行;我不知道它是什么;我只是猜测。

假设您正在经营出租车服务; Persons 安排通过您公司的出租车在Venue 接他们,然后您向他们发送Vehicle。将此组合称为Trip,现在您需要一个在数据库中管理Trips 的类。创建一个名为TripService 的类。这应该使用您的PersonDao、您的VenueDao 和您的VehicleDao 在数据库中创建必要的人员和地点记录,并且应该进行所需的计算以选择使用哪个Vehicle。当它这样做时,它应该使用一个新的TripDao 来持久化一个新的Trip 对象。但是,作为组织者,它应该创建并提供与所有 DAO 的数据库连接,并且应该自己执行提交或回滚。

如果您使用的是 Hibernate 或 JPA,则可以修改您的类。但原理是一样的。即使我的动机错误,您也可以编写一个服务来协调三个 DAO 并提供连接。如果必须,它可以使用连接本身对连接在一起的三个表执行 SELECT。

如果您编写的唯一语句是简单的 SELECT、UPDATE 和 INSERT,那么您将失去数据库的大部分优势

【讨论】:

  • 我没有使用任何一个 DAO。不是我的想法,只是我得到的要求
  • 三个业务类都使用一个 DAO? that 怎么可能是要求?尽管有这个要求,我还是会把你的一个 DAO 分成三个。类应该有一个单一的目的。它不会伤害任何东西,而且会改进您的程序。
  • 你需要一个更高级的程序员来教育管理。 叹息。你应该把这个问题带到 Programmers SO 网站。
猜你喜欢
  • 1970-01-01
  • 2023-01-30
  • 2021-10-08
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-22
相关资源
最近更新 更多