如何从 PreparedStatement 获取 JDBC4ResultSet?
How can I get a JDBC4ResultSet from a PreparedStatement?
我正在为 Bungeecord 的 Minecraft 服务器编写一个全球禁止系统(在 Java 中)。当一名被禁赛的球员试图加入时,他应该被踢出并说明原因。我试图从 MySQL-table.
中找出原因
这是重要的代码:
PreparedStatement psn = null;
psn = Methoden.getConnection()
.prepareStatement("SELECT Grund FROM BanList WHERE Name = '" + pn + "'");
if (psn != null) {
ResultSet rsn = psn.executeQuery();
// JDBC4ResultSet rsn = (JDBC4ResultSet) psn.executeQuery();
if (rsn.next() == true) {
ev.setCancelReason(
"74[76Minepedia74]\n7bDu wurdest aus folgendem Grund gebannt:\n7c"
+ rsn.toString()
+ "\n7bWenn du denkst, dass es ein Versehen war, dann schreib bitte eine Email an 7cminepedia@web.de7b!");
ev.setCancelled(true);
}
}
无论我使用 ResultSet 还是 JDBC4ResultSet,我总是得到 com.mysql.jdbc.JDBC4ResultSet@65cda838
.
将 .toString()
方法应用于 ResultSet 对象将 return ResultSet 对象本身的字符串表示形式,而不是 ResultSet 的 contents。在您的例子中,ResultSet 对象的字符串表示形式是 "com.mysql.jdbc.JDBC4ResultSet@65cda838".
您需要使用 rsn.getString(1)
或 rsn.getString("Grund")
检索 值 return 当您执行 rsn.next()
时。
顺便说一下,您也错误地使用了 PreparedStatement。你应该做
prepareStatement("SELECT Grund FROM BanList WHERE Name = ?);
接着是
psn.setString(1, pn);
在你做 .executeQuery()
.
之前
我正在为 Bungeecord 的 Minecraft 服务器编写一个全球禁止系统(在 Java 中)。当一名被禁赛的球员试图加入时,他应该被踢出并说明原因。我试图从 MySQL-table.
中找出原因这是重要的代码:
PreparedStatement psn = null;
psn = Methoden.getConnection()
.prepareStatement("SELECT Grund FROM BanList WHERE Name = '" + pn + "'");
if (psn != null) {
ResultSet rsn = psn.executeQuery();
// JDBC4ResultSet rsn = (JDBC4ResultSet) psn.executeQuery();
if (rsn.next() == true) {
ev.setCancelReason(
"74[76Minepedia74]\n7bDu wurdest aus folgendem Grund gebannt:\n7c"
+ rsn.toString()
+ "\n7bWenn du denkst, dass es ein Versehen war, dann schreib bitte eine Email an 7cminepedia@web.de7b!");
ev.setCancelled(true);
}
}
无论我使用 ResultSet 还是 JDBC4ResultSet,我总是得到 com.mysql.jdbc.JDBC4ResultSet@65cda838
.
将 .toString()
方法应用于 ResultSet 对象将 return ResultSet 对象本身的字符串表示形式,而不是 ResultSet 的 contents。在您的例子中,ResultSet 对象的字符串表示形式是 "com.mysql.jdbc.JDBC4ResultSet@65cda838".
您需要使用 rsn.getString(1)
或 rsn.getString("Grund")
检索 值 return 当您执行 rsn.next()
时。
顺便说一下,您也错误地使用了 PreparedStatement。你应该做
prepareStatement("SELECT Grund FROM BanList WHERE Name = ?);
接着是
psn.setString(1, pn);
在你做 .executeQuery()
.