Простой SQL-запрос JDBC возвращает пустой набор результатов.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Простой SQL-запрос JDBC возвращает пустой набор результатов.

Сообщение Anonymous »

Я пытался получить плагин, над которым работаю, для взаимодействия с моей базой данных SQL, создания таблиц и добавления строк, кажется, работает нормально, но простые запросы SELECT возвращают пустой набор результатов. Соответствующий код приведен ниже.

Код: Выделить всё

        queryL=
"SELECT RATING"
+ " FROM USERS"
+ " WHERE UUID = '"
+ UUID +"';";
queryG=
"SELECT RATING"
+ " FROM " + Constants.serverName
+ "_USERS"
+ " WHERE UUID = '"
+ UUID +"';";
try {
stmt=con.createStatement();
rs=stmt.executeQuery(queryL);

if (rs.next()){
r.setLocalRating(rs.getInt(1));
}else{
r.setLocalRating(0);
registerPlayer(UUID,false);
Dungeon.getPlugin(Dungeon.class).log("Player new to server");
}
stmt.close();

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try{
stmt=con.createStatement();
rs=stmt.executeQuery(queryG);
if (rs.next()){
r.setGlobalRating(rs.getInt(1));
}else{
r.setGlobalRating(0);
registerPlayer(UUID,true);
Dungeon.getPlugin(Dungeon.class).log("Player new to network");
}
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Как вы можете видеть, если ResultSet пуст (плеер еще не существует в моей базе данных), я вызываю RegisterPlayer. Затем Register Player выдает повторяющуюся запись из-за ошибки первичного ключа, поэтому я знаю, что таблица и строка, которые я ищу, существуют.

В следующем коде показаны запросы обновления, используемые внутри метода RegisterPlayer.

Код: Выделить всё

    if (global){
query=
"INSERT INTO"
//+ Constants.dbName + "."
+ " USERS"
+ " VALUES ('"
+ UUID + "', 0)";

}else{
query=
"INSERT INTO "
//+ Constants.dbName + "."
+ Constants.serverName
+ "_USERS "
+ "VALUES ('"
+ UUID + "', 0)";
}
Наконец, для полноты, запросы, использованные для создания таблиц

Код: Выделить всё

    String userLocalTable=
"CREATE TABLE IF NOT EXISTS " //+ Constants.dbName + "."
+ Constants.serverName +
"_USERS " +
"(UUID varchar(36) NOT NULL, " +
"RATING int NOT NULL, " +
"PRIMARY KEY (UUID))";
String userGlobalTable=
"CREATE TABLE IF NOT EXISTS " + //Constants.dbName + "."
"USERS " +
"(UUID varchar(36) NOT NULL, " +
"RATING int NOT NULL, " +
"PRIMARY KEY (UUID))";
Буду очень признателен за любую информацию о моей проблеме, поскольку, насколько я могу судить, запросы SELECT не должны возвращать пустые наборы результатов.

Подробнее здесь: https://stackoverflow.com/questions/325 ... -resultset
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»