Hallo Forum,
mein Problem: Ich nutze die HSQLDB über JDBC und habe auch soweit eine Beispielanfrage hinbekommen. Allerdings ist mir neulich blöderweise mein workspace während des eclispe-betriebs abhanden gekommen, woraufhin nach dessen Neuerstellung und DB-Umkopierung plötzlich nichts mehr funzte, obwohl ich alles einfach nur neu erstellt hab (keine Code-Änderung). Ich habe dazu ein paar Foren durchsucht und gefunden, dass es hilft, die DB statt mit nem Relativpfad absolut anzugeben. Soweit so gut, das hat dann auch wirklich hingehauen (unerklärlicherweise, weil DB im workspace vorhanden). ABER:
seitdem werden statements nur noch zur Laufzeit der Connection ausgeführt. Dort zwar einwandfrei, aber egal was ich an der DB ändere, es taucht nach beenden der Connection nicht mehr auf. Auch wenn ich mehrere Statements innerhalb einer Connection ausführe, sind diese nur innerhalb dieser Connection persistent, danach nicht mehr.
Habt Ihr ne Idee?
Hier der Code (mit ergänztem absolutpfad lauffähig):
mein Problem: Ich nutze die HSQLDB über JDBC und habe auch soweit eine Beispielanfrage hinbekommen. Allerdings ist mir neulich blöderweise mein workspace während des eclispe-betriebs abhanden gekommen, woraufhin nach dessen Neuerstellung und DB-Umkopierung plötzlich nichts mehr funzte, obwohl ich alles einfach nur neu erstellt hab (keine Code-Änderung). Ich habe dazu ein paar Foren durchsucht und gefunden, dass es hilft, die DB statt mit nem Relativpfad absolut anzugeben. Soweit so gut, das hat dann auch wirklich hingehauen (unerklärlicherweise, weil DB im workspace vorhanden). ABER:
seitdem werden statements nur noch zur Laufzeit der Connection ausgeführt. Dort zwar einwandfrei, aber egal was ich an der DB ändere, es taucht nach beenden der Connection nicht mehr auf. Auch wenn ich mehrere Statements innerhalb einer Connection ausführe, sind diese nur innerhalb dieser Connection persistent, danach nicht mehr.
Habt Ihr ne Idee?
Hier der Code (mit ergänztem absolutpfad lauffähig):
Java:
package dbTest;
import java.sql.*;
public class CuDB
{
public static void main( String[] args )
{
try
{
Class.forName( "org.hsqldb.jdbcDriver" );
}
catch ( ClassNotFoundException e )
{
System.err.println( "Keine Treiber-Klasse!" );
return;
}
Connection con = null;
try
{
String dbPath = "Absolutpfad" ;
con = DriverManager.getConnection(
"jdbc:hsqldb:file:"+dbPath,
"sa",
"" );
// con.setAutoCommit(true); ...bringt keine Veränderung!
Statement stmt = con.createStatement();
// stmt.executeUpdate( "ALTER TABLE displays ADD path varchar(100)" );
stmt.executeUpdate("INSERT INTO displays VALUES(2,'holopro',true,false)");
ResultSet rs = stmt.executeQuery( "SELECT * FROM displays" );
while ( rs.next() )
System.out.printf( "%s, %s%n", rs.getString(1),rs.getString(2));
rs.close();
stmt.close();
}
catch ( SQLException e )
{
e.printStackTrace();
}
finally
{
if ( con != null )
try { con.close(); } catch ( SQLException e ) { e.printStackTrace(); }
}
}
}