Java HSQL Tabelle wird nicht erkannt

T

Tobias Köhler

Folgendes Problem: Ich möchte germe eine Routine schreiben, die überprüft, ob die Datenbank vorhanden ist. Falls ja, soll er die Werte ausgeben, falls nicht, eine anlegen, Werte einsetzen und diese wieder ausgeben. Das Problem liegt jetzt darin, dass ich die DB momentan noch lokal haben möchte. Wird das Programm nun ausgeführt, wird beim ersten Mal eine neue DB angelegt und Werte reingeschrieben. Aber beim nächsten Start ist die DB nicht mehr da.

Aufruf der Methode:
Java:
dbConnection("jdbc:hsqldb:file:C:\\neu\\testDB");

Methode:
Java:
public static void dbConnection(String location)
	{		
		Connection c = null;
		try
		{
			Statement stmt;
			Class.forName("org.hsqldb.jdbcDriver");	
			c = DriverManager.getConnection(location, "sa", "");
			stmt=c.createStatement();					
				
			String sql = "SELECT * FROM TE_TEST";	
			
			ResultSet rSet = stmt.executeQuery(sql);
			rSet.next();
			
			System.out.println((rSet.getInt("TEST_ID")) + " -- " + (rSet.getString("TEST_NAME")));
			stmt.close();
			c.close();				
		}
		catch(ClassNotFoundException y)
		{
			System.out.println("Class Not Found");
		}
		catch(SQLException z)
		{
			////////////////////////////
			///
			///	wenn DB nicht gefunden
			///	wird neue erstellt
			///
			////////////////////////////
			System.out.println("Plan B");
			Connection con = null;
			try
			{
				Statement stmt;
				Class.forName("org.hsqldb.jdbcDriver");	
				con = DriverManager.getConnection(location, "sa", "");
				stmt=con.createStatement();					
					
				String sql = "CREATE TABLE TE_TEST(TEST_ID INTEGER, TEST_NAME VARCHAR(50))";				
				stmt.execute(sql);	
				
				sql = "INSERT INTO TE_TEST VALUES(1, 'TEST')";
				stmt.execute(sql);
				sql = "SELECT * FROM TE_TEST";
				ResultSet rSet = stmt.executeQuery(sql);
				
				while(rSet.next())				
				System.out.println((rSet.getInt("TEST_ID")) + " -- " + (rSet.getString("TEST_NAME")));
				
				stmt.close();
				con.close();
				System.out.println("----------------");
			}
			catch(ClassNotFoundException u)
			{
				System.out.println("Class Not Found");
			}
			catch(SQLException i)
			{
				System.out.println("----------------");
				System.out.println(i);
			}
			
		}	
	}

(Achja, ist dies nun ein Java oder DB- Problem? ^^)
 
Zurück