| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > jdbc+MySQL, не выполняется двойной select |
| Автор: denixx 15.7.2011, 16:23 | ||
| Вот сейчас тренируюсь на MySQL'е: написал простенькое приложеньице, которое выполняет SQL-запрос, написанный в JTextArea и передаёт его мускулу на обработку. Так выяснилось, что в Workbench запись "select * from test.client; select * from test.client;" выполняется нормально, возвращает две одинаковых таблицы, а в моем приложении не хочет, ругается: "com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select * from test.client' at line 2" Неужели мускул не умеет обрабатывать двойной запрос? Для выполнения запроса я использую execute()
В принципе не выполняются любые 2 запроса подряд. Только один за раз. Пробовал ещё "insert into test.client (ClientName, Address1) values ('Anton','Antonov'); delete from test.client WHERE ClientName = 'Anton' and Address1 = 'Antonov'; select * from test.client;" тоже не хочет выполнять. |
| Автор: Zыыыыы 15.7.2011, 16:40 |
| Дело тут все же не в MySQlе. Думаю это происходит из-за того, что метод execute воспринимает строку как один запрос - ессно он получается невалидным. Вариант решения - парсить текст со скриптом с учетом разделителя ";". |
| Автор: denixx 28.7.2011, 10:42 | ||
Выяснилось, что эта возможность отключена по умолчанию, и её надо включать при помощи специального параметра, записанного в URL соединения с БД:
Тогда всё работает. Но, как утверждают разработчики MySQL, это может быть опасно из-за возможности SQL-инъекций в коде. |