gpt4 book ai didi

java - MySQL 返回 NPE 从表中获取 ID(作为字符串)

转载 作者:行者123 更新时间:2023-12-01 16:49:21 29 4
gpt4 key购买 nike

private UUID getClientID(String username) {
try {
String query = "SELECT id FROM `client_table` WHERE username=" + username;
stmt = connection.prepareStatement(query);
ResultSet rs = stmt.getResultSet();
return UUID.fromString(rs.getString(2));
} catch (Exception e) {
e.printStackTrace();
}

return null;
}

表格:

id username password create_date

id = c235a95d-58e7-4454-90ea-58396a00a3c5 username = myUsername password = [BLOB - 16 B] create_date = Fri Apr 28 09:34:49 BST 2017

那么为什么它会返回 null 呢?我认为我在 ResultSet 上做错了什么。

最佳答案

字符串应该位于两个'username'之间,并且您已经使用PreparedStatement,因此请使用:

String query = "SELECT id FROM `client_table` WHERE username= ?";
stmt = connection.prepareStatement(query);
stmt.setString(1, username);
ResultSet rs = stmt.executeQuery();
if(rs.next()){
return UUID.fromString(rs.getString(1));
}else{
return null;//id not found
}

注意

  1. 您的查询仅返回一个字段,因此使用 rs.getString(2) 是错误的,没有第二个字段
  2. 您必须执行该语句,然后使用 rs.next() 获取结果

关于java - MySQL 返回 NPE 从表中获取 ID(作为字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43675766/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com