gpt4 book ai didi

java - 从关系数据库填充 Java 对象模型

转载 作者:行者123 更新时间:2023-12-02 06:41:55 25 4
gpt4 key购买 nike

我需要 Josh Long 所著的《Spring Recipes》一书中的示例帮助。尝试使用持久层扩展 Spring @MVC 章节中的代码示例。作者对所有数据进行了硬编码。我正在寻找此类模型、数据库模式设计和基于 DAO 的 POJO 数据群体的最佳实践解决方案。我不想使用 Hibernate 或 JPA,只想使用 Spring。

这是我正在练习的模型(省略了 getter 和 setter 以减少空间):

public class Reservation {

private String courtName;
private Date date;
private int hour;
private Player player;
private SportType sportType;

}

public class Player {

private String name;
private String phone;

}

public class SportType {

private int id;
private String name;

}

我制作了 3 个数据库表:reservation、player、sport_type。对于每个表,我都有 DAO 类:ReservationDao、PlayerDao、SportTypeDao。这是正确的方法吗?

对于此类对象设计,我需要什么样的数据库关系?

如何在我的服务层中填充 Reservation 对象?我是否必须对某些联接使用一个查询,或者一一调用 ReservationDao、PlayerDao 和 SportTypeDao 方法才能从数据库获取单个 Reservation 行?

最佳答案

我会给你一些可能有争议的想法,但这是一个设计问题,所以它会是固执己见的。

我不会创建 DAO,而只会创建一个服务层,并在可能的情况下使用多个内部联接查询所有三个表(即联接 PlayerSportType)。原因是,如果您要使用直接 SQL,您不妨利用数据库(此外,大多数 ORM 很可能也会急切地加载)。

因为在手动 SQL Web 应用程序中,您需要基于不同的查询和 View 创建许多复合类对象,我发现 DAO 间接完全是浪费时间。如果你真的想要 DAO OOP,你应该使用 ORM。否则,更多地考虑手动 SQL 的函数式/过程式编程风格,在这种风格中,您总是在转换数据 (DTO)。因此,你更喜欢干净但乏味(而不是那么干)的转换,而不是将域对象推到各处。

您还应该知道 Spring 有简单的方法 map JDBC ResultSet to Java Bean s。

关于java - 从关系数据库填充 Java 对象模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19069052/

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