我有以下功能:
public Map<Integer, Product> fetchAllProducts() {
Map<Integer, Product> pArr = new HashMap();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT id, intro, content, price FROM Product");
while (rs.next()) {
pArr.put(rs.getInt("id"), new Product(rs));
}
st.close();
} catch (SQLException ex) {
//...
}
return pArr;
}
它从 mySQL 表中获取所有行,Product
并为每一行创建一个新Product
类。产品构造器:
public Product(ResultSet rs) {
try {
price = rs.getInt("price");
content = rs.getString("content");
intro = rs.getString("intro");
} catch (SQLException ex) {
//...
}
}
我的问题是:有没有更好的方法将结果列分配给变量Product
?代码price = rs.getInt("price");
等似乎是多余的,不是吗?完美的是,如果我将查询语句更改SELECT intro, content, tax, delivery FROM ...
为构造函数,则会自动将其分配给构造函数中的适当变量(即介绍、内容、税收、交付)。这可以用Java完成还是我只是在做梦?