Не выполняется запрос jdbc mysql

135
11 марта 2019, 22:00

Вот мне нужно создать нового пользователя и логин и пароль необходимо эти данные подставить из тестовых полей в запрос но он не работает, в чем ошибка?

 connection.updateQuery(String.format("CREATE USER '%s'@'%' IDENTIFIED BY '%s'",login.getText(),password.getText()));
 connection.updateQuery(String.format("CREAGRANT ALL PRIVILEGES ON *.* TO '%s'@'%' WITH GRANT OPTION",login.getText()));

В результате полчаю ошибку UnknownFormatConversionException:

Exception in thread "AWT-EventQueue-0" 
java.util.UnknownFormatConversionException: Conversion = ''' at
java.base/java.util.Formatter.checkText(Formatter.java:2730) at 
java.base/java.util.Formatter.parse(Formatter.java:2706) at 
java.base/java.util.Formatter.format(Formatter.java:2653) at 
java.base/java.util.Formatter.format(Formatter.java:2607) at 
java.base/java.lang.String.format(String.java:2734) at     
com.testing.Home_form$2.actionPerformed(Home_form.java:68) at 
Answer 1

Проблемма не в подключении, а в форматировании строки. Если точнее в позиции '%' - в данной реализации знак % является специальньм символом. Чтоб его использовать, следует просто продублировать его:

("CREATE USER '%s'@'%%' IDENTIFIED BY '%s'",login.getText(),password.getText()));
 connection.updateQuery(String.format("CREAGRANT ALL PRIVILEGES ON *.* TO '%s'@'%%' WITH GRANT OPTION",login.getText()));
READ ALSO
Не запускается скомпилированный JAVA файл

Не запускается скомпилированный JAVA файл

Хочу опробовать библиотеку jssc для работы с COM портомПосле импортированния в Eclipse, тестовый код запускается

142
Java getResource() поиск ресурса при наличии JavaAgent

Java getResource() поиск ресурса при наличии JavaAgent

При наличии ресурсов в папке с JAR файлом метод getResource() берет их оттуда Необходимо, что бы метод getResource() брал ресурсы из JAR файла, а не папки,...

150
ссылки с text-underline в Outlook

ссылки с text-underline в Outlook

Хочу создать html-шаблон для подписи для Office Outlook 365Весь шаблон есть на table

128