首页 > 解决方案 > 如何用jdbc实现一对多

问题描述

我正在尝试编写一个程序来管理一些客户。每个客户都有预订,每个预订都有项目。我知道我有一对多的关系,但我不知道该怎么做。

我没有使用 Spring,只有 JDBC。

没有数据库,我这样做了:

public class Client {

    private String _fullName;
    private String _address;
    private String _email;
    private String _phoneNumber;
    private List<Reservation> _reservations;
    }

public class Reservation {

    private List<Item> _items;
    private int _totalSum;
    private boolean _toDeliver;
    private String _date;
}
public class Item {

    //primary key.
    private int _id;
    private int _price;
    private String _name;

}

我必须申报这些清单吗?如果没有 Spring、Hibernate 和其他东西,是否可以做到这一点?我只想知道如何设计我的程序。

标签: javajdbcdao

解决方案


是的,您只需使用 JDBC 数据库驱动程序即可完成所有工作。

您要做的第一件事是设计数据库,即您的表和约束等。

然后您返回 Java 并使用 JDBC 查询您的数据库。

一种常见的方法是创建一个 DAO 类,您可以在其中将数据库查询与代码分离。它是这样的:

public String getUserName(String userId) throws SQLException {
    String sql = "SELECT name FROM user WHERE user_id = ?";

    try (Connection connection = getConnection();
         PreparedStatement stmt = connection.prepareStatement(sql)) {

        stmt.setString(1, userId);

        try (ResultSet rs = stmt.executeQuery()) {
            String name = rs.getString("name");
            return name;
        }
    }
}

这只是一个简单的例子,这里没有错误处理,也没有处理空查询结果,网上有更好的例子来说明如何制作DAO并创建连接。根据您运行此代码的位置,您更喜欢使用连接池来提高效率(另一件事需要阅读更多内容)。

在您的用例中,您将让 DAO 获取数据以制作您的Item.,创建一个新的Item并从 DAO 返回它。网上有很多这样的例子,如果您还有其他问题,请不要犹豫。


推荐阅读