2016-04-29 3 views
2

Я пытаюсь выполнить несколько команд sql, но это дает мне «ошибку в синтаксисе SQL»;Несколько sql-команд

Db_Connection dbconn = new Db_Connection(); 
Connection myconnection = dbconn.Connection(); 
String sqlString = "SELECT DISTINCT std_id FROM std_crs WHERE crs_id ='222123'; " 
    + "SELECT * FROM cplus_grades ;"; 
Statement myStatement = myconnection.createStatement(); 

boolean results = myStatement.execute(sqlString); 
do { 
    if (results) { 
      ResultSet rs = myStatement.getResultSet(); 

      while (rs.next()) { 
      } 
      rs.close(); 
    } 
    results = myStatement.getMoreResults(); 
} while(results); 

myStatement.close(); 
+0

https://msdn.microsoft.com/en-us/library/ms378758(v=sql.110).aspx проверьте эту ссылку .. Я делаю то же самое Наверное, да? –

+1

+1 для показа этой функции. Возможно, вам нужно удалить последнюю точку с запятой в строке sql. Эта функция также не может поддерживаться каждым драйвером JDBC. Какой драйвер и база данных вы используете? Это сервер sql, как в вашей ссылке? – wero

+0

Я использую phpMyAdmin –

ответ

3

Я сделал небольшой тест с тремя JDBC драйверов:

  • MS SQL: работает, возвращает два результата устанавливает
  • MySQL: не удается с синтаксической ошибки - это то, что вы видите
  • HSQLDB: работает, но возвращает только один результирующий набор.

Так что, я думаю, это просто зависит от драйвера JDBC, если эта техника работает. Возможно, он работает только в MS SQL JDBC.

UPDATE:

Он также работает с Postgres.

1

1. String dbUrl = "jdbc: mysql: // yourDatabase? AllowMultiQueries = true"; Это должен быть ваш URL-адрес подключения jdbc

Смежные вопросы