ciao!
so che scala non è molto usato, ma penso che il problema sia più altro che il linguaggio in se.
allora, in fase di avvio se il file del db non è presente lo creo ed eseguo determinate operazioni.
se invece esiste faccio solo le altre operazioni.
al primo avvio funziona tutto.codice:@main def main(): Unit = { if (!checkDbExists()) { val conn = createConn() createDb(conn) test(conn) conn.close() } else { val conn = createConn() test(conn) } } def test(conn: Connection): Unit = { addLog(conn) getAllLog(conn) addSync(conn) getAllSync(conn) }
al secondo avvio, con db esistente, ottengo questo errore:
però è strano, perchè invece nel primo avvio creo il db con le tabelle, inserisco i record e li visualizzo senza problemi.codice:Exception in thread "main" org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "OPERATION_LOG" not found; SQL statement: INSERT INTO operation_log (operation, date) VALUES (?, ?) [42102-232] at org.h2.message.DbException.getJdbcSQLException(DbException.java:514) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:223) at org.h2.message.DbException.get(DbException.java:199) at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:7945) at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:7916) at org.h2.command.Parser.readTableOrView(Parser.java:7895) at org.h2.command.Parser.readTableOrView(Parser.java:7857) at org.h2.command.Parser.parseInsert(Parser.java:1521) at org.h2.command.Parser.parsePrepared(Parser.java:698) at org.h2.command.Parser.parse(Parser.java:581) at org.h2.command.Parser.parse(Parser.java:556) at org.h2.command.Parser.prepareCommand(Parser.java:484) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:645) at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:561) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1164) at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:315) at log$package$.addLog(log.scala:24) at main$package$.test(main.scala:70) at main$package$.main(main.scala:19) at main.main(main.scala:6)
sembra come non si riesca a connettere nel caso già esista.
possibile?
questa la funzione della connessione:
codice:import java.sql.{Connection, DriverManager} def createConn(): Connection = { Class.forName("org.h2.Driver") DriverManager.getConnection("jdbc:h2:./DATABASE/my_db", "", "") }

Rispondi quotando
