while 循环中的结果集找不到列名
ResultSet in while loop cannot find column name
我试图在 DBeaver 中打印出我的用户 table 的数据列表,但是每当我 运行 将 Java 程序打印到 return 列表时,我收到一条错误消息,提示未找到“userid”列名。我需要在我的 while 循环中改变什么吗?这是我的代码:
@Override
public List<User> findAll() {
try(Connection conn = ConnectionUtil.getConnection()) {
String sql = "SELECT * FROM user;";
Statement statement = conn.createStatement();
ResultSet result = statement.executeQuery(sql);
List<User> list = new ArrayList<>();
while (result.next()) {
User user = new User();
user.setUserId(result.getInt("userid"));
user.setUsername(result.getString("username"));
user.setPassword(result.getString("password"));
user.setFirstName(result.getString("firstname"));
user.setLastName(result.getString("lastname"));
user.setEmail(result.getString("email"));
list.add(user);
}
return list;
Here is my DBeaver table
user
是 PostgreSQL 中的一个特殊关键字。
该查询返回登录到数据库的用户的用户名。这就是列不匹配的原因。
您需要对 table 名称进行转义,查询才能按预期工作:
String sql = "SELECT * FROM \"user\";";
我试图在 DBeaver 中打印出我的用户 table 的数据列表,但是每当我 运行 将 Java 程序打印到 return 列表时,我收到一条错误消息,提示未找到“userid”列名。我需要在我的 while 循环中改变什么吗?这是我的代码:
@Override
public List<User> findAll() {
try(Connection conn = ConnectionUtil.getConnection()) {
String sql = "SELECT * FROM user;";
Statement statement = conn.createStatement();
ResultSet result = statement.executeQuery(sql);
List<User> list = new ArrayList<>();
while (result.next()) {
User user = new User();
user.setUserId(result.getInt("userid"));
user.setUsername(result.getString("username"));
user.setPassword(result.getString("password"));
user.setFirstName(result.getString("firstname"));
user.setLastName(result.getString("lastname"));
user.setEmail(result.getString("email"));
list.add(user);
}
return list;
Here is my DBeaver table
user
是 PostgreSQL 中的一个特殊关键字。
该查询返回登录到数据库的用户的用户名。这就是列不匹配的原因。
您需要对 table 名称进行转义,查询才能按预期工作:
String sql = "SELECT * FROM \"user\";";