Hallo,
Ich habe folgendes Problem:
ich möchte aus einer anderen Klasse die funktion insertKonto aufrufen und hier die dort abgefragte Kontonummer übergeben. Schreibe ich in die Zeile
bekomme ich die Fehlermeldung KONTONUMMER not found. Trage ich hier einfach ein paar Ziffern ein, funktioniert es wie gewollt... wie kann ich der Datenbank klarmachen, dass ich hier den Wert der Variablen will?
Ich habe folgendes Problem:
ich möchte aus einer anderen Klasse die funktion insertKonto aufrufen und hier die dort abgefragte Kontonummer übergeben. Schreibe ich in die Zeile
Code:
sqlQuery = "INSERT INTO konto (KTO_NR) VALUES(Kontonummer)";
bekomme ich die Fehlermeldung KONTONUMMER not found. Trage ich hier einfach ein paar Ziffern ein, funktioniert es wie gewollt... wie kann ich der Datenbank klarmachen, dass ich hier den Wert der Variablen will?
Code:
package javadb;
import java.sql.*;
import java.util.Date;
public class KontoDB{
public static void main(String [] args) throws SQLException, ClassNotFoundException{
Class.forName("org.hsqldb.jdbcDriver");
Connection con = DriverManager.getConnection(
"jdbc:hsqldb:file:myDBs/userDB;shutdown=true","sa","");
Statement stmt = con.createStatement();
PreparedStatement prepStmt = null;
ResultSet rs = null;
con.close();
System.out.println("TEST");
} // end of main
// -----------------------------------------------------------------------
// Buchung in Tabelle buchungen einfügen
// ----------------------------------------------------------------------
public void insertBuchung(String sqlQuery, Statement stmt, double Betrag, Date Datum, int Gegenkonto)
throws SQLException, ClassNotFoundException {
sqlQuery = "INSERT INTO buchungen (K_ID, Betrag, Datum, Gegenkonto) " +
"VALUES(1, Betrag, Datum, Gegenkonto)";
stmt.executeQuery(sqlQuery);
}
// -----------------------------------------------------------------------
// Konto in Tabelle konten einfügen
// ----------------------------------------------------------------------
public void insertKonto(String sqlQuery, Statement stmt, int Kontonummer)
throws SQLException, ClassNotFoundException {
sqlQuery = "INSERT INTO konto (KTO_NR) VALUES(Kontonummer)";
stmt.executeQuery(sqlQuery);
}
// -----------------------------------------------------------------------
// Inhalt der Kontotabelle ausgeben
// ----------------------------------------------------------------------
public void printKonto(String sqlQuery, Statement stmt, ResultSet rs)
throws SQLException, ClassNotFoundException {
sqlQuery = "SELECT * FROM konto";
rs = stmt.executeQuery(sqlQuery);
System.out.println("\n == ALLE VORHANDENEN BUCHUNGEN === \n");
int counter = 1;
while(rs.next()){
System.out.println(counter++ + ". Datensatz:\n");
int id = rs.getInt("K_Id");
System.out.print("\t [K_ID -->" + id + "]");
int ktoNr = rs.getInt("KTO_NR");
System.out.print("\t [KTO_NR -->" + ktoNr + "]\n\n");
}
}
// -----------------------------------------------------------------------
// Tabellen konto und buchungen anlegen
// -----------------------------------------------------------------------
public void createTables(String sqlQuery, Statement stmt)
throws SQLException, ClassNotFoundException{
sqlQuery = "CREATE TABLE konto (K_ID INTEGER IDENTITY, KTO_NR INTEGER, PRIMARY KEY(K_ID));";
stmt.executeUpdate(sqlQuery);
sqlQuery = "CREATE TABLE buchungen(B_ID INTEGER IDENTITY, K_ID INTEGER, Betrag DOUBLE, Datum DATE, Gegenkonto INTEGER, PRIMARY KEY(B_ID), FOREIGN KEY(K_ID) REFERENCES konto(K_ID));";
stmt.executeUpdate(sqlQuery);
}
} // end of KontoDB