You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@empire-db.apache.org by Iñigo Martínez <in...@gmail.com> on 2013/07/10 22:54:24 UTC

Problems working with SQLite

Hello:

I have to create a project where I will be working with a local database.
As I have prior experience with empire-db, I have started using it with a
sqlite database.

I am using the xerial sqlite driver as it looks like it is a fork of zentus
driver, and this one is not available anymore. Looking at jira I saw that
the empire-db database driver is based on zentus.

I am getting multiple errors thought, both in the creation of the database,
and in insertion of new records.

Is there any problem when using empire-db with sqlite ? Any ideas ?

Thank you,

Best regards,

Error messages...

Database creation:

[main] INFO org.apache.empire.db.DBDDLGenerator - Adding create statmement
for table TABLE1.
[main] INFO org.apache.empire.db.DBDDLGenerator - Adding create statmement
for index TABLE1_IDX.
[main] INFO org.apache.empire.db.DBDDLGenerator - Adding create statmement
for table TABLE2.
[main] INFO org.apache.empire.db.DBDDLGenerator - Adding create statmement
for index TABLE2_IDX.
-
[main] ERROR org.apache.empire.db.DBSQLScript - java.sql.SQLException:
database connection closed

java.sql.SQLException: database connection closed
    at org.sqlite.SQLiteConnection.checkOpen(SQLiteConnection.java:300)
    at
org.sqlite.SQLiteConnection.createStatement(SQLiteConnection.java:546)
    at
org.sqlite.SQLiteConnection.createStatement(SQLiteConnection.java:531)
    at
org.apache.empire.db.sqlite.DBDatabaseDriverSQLite.executeSQL(DBDatabaseDriverSQLite.java:141)
    at org.apache.empire.db.DBSQLScript.run(DBSQLScript.java:120)
    at com.imc.lfdb.Main.createDatabase(Main.java:147)
    at com.imc.lfdb.Main.main(Main.java:78)
[main] INFO org.apache.empire.exceptions.EmpireException - An Error
occured. Message is: The database operation failed. Native error is:
database connection closed
Exception in thread "main"
org.apache.empire.db.exceptions.EmpireSQLException: The database operation
failed. Native error is: database connection closed
    at org.apache.empire.db.DBSQLScript.run(DBSQLScript.java:126)
    at com.imc.lfdb.Main.createDatabase(Main.java:147)
    at com.imc.lfdb.Main.main(Main.java:78)
Caused by: java.sql.SQLException: database connection closed
    at org.sqlite.SQLiteConnection.checkOpen(SQLiteConnection.java:300)
    at
org.sqlite.SQLiteConnection.createStatement(SQLiteConnection.java:546)
    at
org.sqlite.SQLiteConnection.createStatement(SQLiteConnection.java:531)
    at
org.apache.empire.db.sqlite.DBDatabaseDriverSQLite.executeSQL(DBDatabaseDriverSQLite.java:141)
    at org.apache.empire.db.DBSQLScript.run(DBSQLScript.java:120)
    ... 2 more

If I create the database by hand, these are the errors on insertion:

[main] ERROR org.apache.empire.db.
DBDatabaseDriver - Error executing query 'SELECT t1.ID
FROM TABLE2 t1
WHERE t1.NAME='Arenas'' --> database connection closed
java.sql.SQLException: database connection closed
    at org.sqlite.SQLiteConnection.checkOpen(SQLiteConnection.java:300)
    at
org.sqlite.SQLiteConnection.createStatement(SQLiteConnection.java:546)
    at
org.sqlite.SQLiteConnection.createStatement(SQLiteConnection.java:539)
    at
org.apache.empire.db.DBDatabaseDriver.executeQuery(DBDatabaseDriver.java:593)
    at org.apache.empire.db.DBDatabase.querySingleValue(DBDatabase.java:766)
    at org.apache.empire.db.DBDatabase.querySingleInt(DBDatabase.java:836)
    at org.apache.empire.db.DBDatabase.querySingleInt(DBDatabase.java:866)
    at com.imc.lfdb.Main.getData(Main.java:193)
    at com.imc.lfdb.Main.insertData(Main.java:159)
    at com.imc.lfdb.Main.main(Main.java:100)
[main] ERROR org.apache.empire.db.exceptions.QueryFailedException - Error
executing query SELECT t1.ID
FROM TABLE2 t1
WHERE t1.NAME='Arenas'.
Native error is: database connection closed
[main] INFO org.apache.empire.db.DBDatabase - Executing: INSERT INTO
TABLE2( NAME) VALUES ( 'Arenas')
[main] ERROR org.apache.empire.db.exceptions.StatementFailedException -
Error executing statement INSERT INTO TABLE2( NAME) VALUES ( 'Arenas').
Native error is: database connection closed
Exception in thread "main"
org.apache.empire.db.exceptions.StatementFailedException: Error executing
statement INSERT INTO TABLE2( NAME) VALUES ( 'Arenas').
Native error is: database connection closed
    at org.apache.empire.db.DBDatabase.executeSQL(DBDatabase.java:1293)
    at org.apache.empire.db.DBRowSet.updateRecord(DBRowSet.java:818)
    at org.apache.empire.db.DBRecord.update(DBRecord.java:795)
    at com.imc.lfdb.Main.insertData(Main.java:202)
    at com.imc.lfdb.Main.insertData(Main.java:162)
    at com.imc.lfdb.Main.main(Main.java:100)
Caused by: java.sql.SQLException: database connection closed
    at org.sqlite.SQLiteConnection.checkOpen(SQLiteConnection.java:300)
    at
org.sqlite.SQLiteConnection.createStatement(SQLiteConnection.java:546)
    at
org.sqlite.SQLiteConnection.createStatement(SQLiteConnection.java:531)
    at
org.apache.empire.db.sqlite.DBDatabaseDriverSQLite.executeSQL(DBDatabaseDriverSQLite.java:141)
    at org.apache.empire.db.DBDatabase.executeSQL(DBDatabase.java:1278)
    ... 5 more