Hallo zusammen,
ich kämpfe zur Zeit an einem sehr, sehr komischen Syntax-Fehler...Genauer geht es darum,ein Skript einzulesen und es aus dem Programm heraus auszuführen.
Hier erstmal das Script zum löschen der Tabellen
beim Ausführen des Codes bekomme ich folgenden Fehler
Wie ihr sicher erkennen könnt, ist das Script korrekt. Squirrel/QuantumDB schluckt es ohne zu meckern.
Ich checke es einfach nicht, warum es nicht funktioniert.
Vielen Dank schonmal!
ich kämpfe zur Zeit an einem sehr, sehr komischen Syntax-Fehler...Genauer geht es darum,ein Skript einzulesen und es aus dem Programm heraus auszuführen.
Hier erstmal das Script zum löschen der Tabellen
SQL:
USE testdb;
DROP TABLE Answers;
DROP TABLE UnitXScenario;
DROP TABLE TestUnit;
DROP TABLE Task;
DROP TABLE TestScenario;
DROP TABLE TestUnitSubCategory;
DROP TABLE TestUnitMainCategory;
Java:
@Component
public class DatabaseManagementDaoImpl extends SimpleJdbcDaoSupport implements
IDatabaseManagementDao {
private static final String TAG_NEW_LINE = "\n";
public void dropTables(String ddlScrtiptPath) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(ddlScrtiptPath));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append(TAG_NEW_LINE);
}
br.close();
getSimpleJdbcTemplate().update(sb.toString());
}
}
beim Ausführen des Codes bekomme ich folgenden Fehler
Code:
Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [USE testdb;
DROP TABLE Answers;
DROP TABLE UnitXScenario;
DROP TABLE TestUnit;
DROP TABLE Task;
DROP TABLE TestScenario;
DROP TABLE TestUnitSubCategory;
DROP TABLE TestUnitMainCategory;
]; nested exception is com.mysql.jdbc.exceptions.jdbc4.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 ';
DROP TABLE Answers;
DROP TABLE UnitXScenario;
DROP TABLE TestUnit;
DROP TABLE ' at line 1
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:220)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:458)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:466)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:474)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:479)
at org.springframework.jdbc.core.JdbcTemplate.queryForInt(JdbcTemplate.java:488)
at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForInt(SimpleJdbcTemplate.java:119)
at com.unitedinternet.skor.businesslogic.dao.DatabaseManagementDaoImpl.dropTables(DatabaseManagementDaoImpl.java:27)
at com.unitedinternet.skor.businesslogic.management.DatabaseManagementManagerImpl.dropTables(DatabaseManagementManagerImpl.java:41)
at com.unitedinternet.skor.businesslogic.management.SkorAdministrationManagerImpl.main(SkorAdministrationManagerImpl.java:62)
Caused by: com.mysql.jdbc.exceptions.jdbc4.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 ';
DROP TABLE Answers;
DROP TABLE UnitXScenario;
DROP TABLE TestUnit;
DROP TABLE ' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2713)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2663)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1599)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:443)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:396)
... 9 more
Wie ihr sicher erkennen könnt, ist das Script korrekt. Squirrel/QuantumDB schluckt es ohne zu meckern.
Ich checke es einfach nicht, warum es nicht funktioniert.
Vielen Dank schonmal!