Я пытаюсь получить ArrayList таблиц из базы данных MySQL. Из статей, которые я прочитал, следующий код должен работать, но он не работает.
private ArrayList<String> makeTableArray(String dbName){
ArrayList<String> stringArr = new ArrayList<>();
try(Session session = ServerConnect.getSessionFactory().openSession()){
String query = "show tables from :dbName";
NativeQuery nativeQuery = session.createNativeQuery(query);
nativeQuery.setParameter("dbName", dbName);
List list = nativeQuery.list();
for(Object database: list){
stringArr.add(String.valueOf(database));
}
}
return stringArr;
}
Ошибка, которую я получаю, используя базу данных sakila:
ОШИБКА: у вас есть ошибка в вашем синтаксисе SQL; обратитесь к руководству, соответствующему вашей MySQL версии сервера, чтобы найти правильный синтаксис для использования рядом с '' sakila '' в строке 1
. Я могу получить это, если объединю запрос с dbName, например как "show tables from " + dbName;
, но если я установлю параметр, он не будет работать.