我正在尝试编写一个程序来管理一些客户端。每个客户都有预订,每个预订都有项目。我知道我有一对多的关系,但是我不知道该怎么做。
我不使用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和其他东西,有可能做到这一点吗?我只想知道如何设计程序。
答案 0 :(得分:1)
是的,您只需使用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返回。在线上有很多示例,如果您还有其他问题,请随时提出。