Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Scala] Problema con connessione H2

    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.

    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 primo avvio funziona tutto.
    al secondo avvio, con db esistente, ottengo questo errore:
    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)
    però è strano, perchè invece nel primo avvio creo il db con le tabelle, inserisco i record e li visualizzo senza problemi.
    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", "", "")
    }

  2. #2
    dopo una giornata intera abbiamo deciso di passare a sqlite.
    non abbiamo capito perchè questo comportamento, ed abbiamo provato Nmila opzioni di connessione.

    con sqlite al momento non stiamo avendo lo stesso problema.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.