У меня есть локальный SQL-сервер под управлением MariaDB, и мне нужно запрашивать данные из базы данных, используя Java и JDBC.Я могу подключиться к базе данных, а также записать данные, но простой SELECT не работает.
Я уже пытался использовать разные версии mysql-java-connector и проверил, что SQL-сервер обновлен..
Подключение к базе данных:
//Check wether connection already exists
if(connection != null && !connection.isClosed()){
return;
}
//Create new connection
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/statdb", "root", "");
System.out.println("Connected to Database");
//Update guilds from Database
updateGuildsInDatabase();
Метод, вызываемый в конце, выглядит следующим образом:
private void updateGuildsInDatabase() throws SQLException {
//Check for not existing connection
if(connection == null || connection.isClosed()){
init();
return;
}
ArrayList<String> localInDb = new ArrayList<>();
Statement qGStmt = connection.createStatement();
//Execute Query
ResultSet guilds = qGStmt.executeQuery("SELECT * FROM guilds;");
guilds.first();
//Adding results to List
while(guilds.next()){
localInDb.add(guilds.getString("guild_uid").toLowerCase());
}
System.out.println("Queried: " + localInDb.size());
this.guildsInDb = localInDb;
}
Таблица "гильдий" в базе данных "statdb"имеет два столбца с именами "guild_uid" (первичный ключ, varchar) и "display_name" (varchar).Я добавил одну запись со значениями "guild_1" и "Test Guild".
Поскольку у меня есть одна запись в таблице 'guilds', я бы ожидал, что консоль будет выглядеть так:
Connected to Database
Queried: 1
Но фактический результат выглядит так:
Connected to Database
Queried: 0