HSQLDB + JDBC: Não Salva nada em disco!

Estou tendo um problema com HSQLDB

Obtenho a conexão desta forma

try {
   Class.forName("org.hsqldb.jdbcDriver");
} catch (ClassNotFoundException e) {				
   e.printStackTrace();
}
Connection c = DriverManager.getConnection("file:C:\\minhadb\\", "sa", "");

Ai crio a tabela assim:

Statement s = c.createStatement();
s.executeUpdate("CREATE TABLE tabela ( id BIGINT NOT NULL ,  user_id BIGINT NOT NULL, user_data BLOB,  last_acess BIGINT DEFAULT 0, PRIMARY KEY (id))");
c.commit();
s.close();

E insiro dados assim:

PreparedStatement s = c.prepareStatement("INSERT INTO tabela (id, user_id, user_data, last_acess) VALUES (?, ?, ?, ?)");
s.setLong(1, id);
s.setLong(2, userID);
s.setBytes(3, data);
s.setLong(4, time);
s.executeUpdate();
c.commit();

Até ai tudo tranquilo.
Porém nada, absolutamente nada fica gravado em disco, nem mesmo a criação da Tabela, pois se eu for fazer uma consulta logo no inicio da aplicação diz que a tabela não existe.
O que pode estar ocorrendo?

P.s. Preciso que seja no modo de gravação em arquivo (“file”), para um banco de dados embarcado.

Cara,

Eu não tenho certeza, mas acho que o Statement.executeUpdate não aceita comandos DDL, como o CREATE TABLE. Mas, mesmo que aceite, você está passando um diretório no momento da abertura da conexão, quando deveria passar um arquivo. Tente o seguinte:

Connection c = DriverManager.getConnection("file:C:\\minhadb", "sa", "");

ou

Connection c = DriverManager.getConnection("file:C:\\minhadb\\minhadb", "sa", "");

Nada funciona mesmo assim

Esqueci de informar no post o modo correto que estou fazendo a conexão, que é este:

Mas o problema de não persistir persiste :+D (Trocadilho infame)

[quote=EderBaum]Nada funciona mesmo assim

Esqueci de informar no post o modo correto que estou fazendo a conexão, que é este:

Mas o problema de não persistir persiste :+D (Trocadilho infame)[/quote]
depois que você inseriu os dados, é necessário dar “shutdown” no banco de dados.

Statement s = c.createStatement(); s.execute("SHUTDOWN");
veja se isso resolve o problema.

abraço.

Ohhhhh!!!

Funcionou.

Andei lendo sobre isso a pouco em outro canto tbém.
Loucura isso não??? Não entendi ainda o pq disso pois preh=judica a questão da portabilidade de banco, mas beleza :+D

Valeu!!!