大家好你能告诉我我的代码有什么问题吗? 当我将ResultSet设置为“SELECT * FROM Table1”时,它完美地工作, 如果它是“SELECT key,itemName,itemPrice,itemQuantity FROM Table1” 但是当我尝试只使用其中一个或两个时,它会打印出一个找不到的错误列。
我的数据库存储在MS Acceess中。这是我的主要内容:
try (Connection cn = DBUtil.getConnection(DBType.MS_ACCESS);
Statement st = cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.executeQuery("SELECT Table1.key FROM Table1");) {
Table1.displayData(rs);
} catch (SQLException ex) {
DBUtil.processException(ex);
}
那是Table1.java:
public class Table1 {
public static void displayData(ResultSet rs) throws SQLException {
// to print out my database
while (rs.next()) {
StringBuffer buffer = new StringBuffer();
buffer.append(rs.getString("key") + " ");
buffer.append(rs.getString("itemName") + " ");
double price = rs.getDouble("itemPrice");
DecimalFormat pounds = new DecimalFormat("£#,##0.00");
String formattedPrice = pounds.format(price);
buffer.append(formattedPrice + " ");
buffer.append(rs.getInt("itemQuantity") + " ");
System.out.println(buffer.toString());
}
}
}
答案 0 :(得分:2)
您的结果集仅包含您在选择查询中定义的列。所以,如果你这样做
rs.getString("itemName")
然后您必须在查询中选择该列,而不是
st.executeQuery("SELECT Table1.key FROM Table1")
^-----------------column missing
待办事项
st.executeQuery("select key, itemName, itemPrice, itemQuantity from Table1")
答案 1 :(得分:-1)
你应该使用
buffer.append(rs.getString(“Table1.key”)+“”);
resultset具有您在select查询中给出的名称数据。(key = Table1.key)