如何使用 jdbc 实现一对多
How to implement one to many with jdbc
我正在尝试编写一个程序来管理一些客户端。每个客户都有预订,每个预订都有 items.I 知道我有一对多关系,但我不知道该怎么做。
我没有使用 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 和其他东西,是否可以做到这一点?我只是想知道我的程序是如何设计的。
是的,您只需使用 JDBC 数据库驱动程序即可完成所有操作。
您要做的第一件事是设计您的数据库,即您的表和约束等。
然后您返回 Java 并使用 JDBC.
查询您的数据库
一种常见的方法是创建一个 DAO class,您可以在其中将数据库查询与代码分离。它是这样的:
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
,从 DAO 创建一个新的 Item
和 return。网上有很多这样的例子,如果还有什么问题,欢迎追问。
我正在尝试编写一个程序来管理一些客户端。每个客户都有预订,每个预订都有 items.I 知道我有一对多关系,但我不知道该怎么做。
我没有使用 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 和其他东西,是否可以做到这一点?我只是想知道我的程序是如何设计的。
是的,您只需使用 JDBC 数据库驱动程序即可完成所有操作。
您要做的第一件事是设计您的数据库,即您的表和约束等。
然后您返回 Java 并使用 JDBC.
查询您的数据库一种常见的方法是创建一个 DAO class,您可以在其中将数据库查询与代码分离。它是这样的:
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
,从 DAO 创建一个新的 Item
和 return。网上有很多这样的例子,如果还有什么问题,欢迎追问。