SQLite Daten werden nicht in die Tabelle eingefügt

LuckyGuy

Mitglied
Hallo Community,

Ich arbeite an einem kleinen Projekt für die Schule und komme einfach nicht weiter!!!

Wenn ich ein Ticket buche/storniere läuft das Programm, es wird mir der neue Datensatz ausgegeben,
es wird auch bestätigt das ich das Ticket gebucht/storniert habe.
Nur wenn ich nun die Tabelle ist das gebuchte Ticket nicht vorhanden
bzw. das stornierte Ticket ist immer noch vorhanden.

Habt ihr eine Idee warum das ganze nicht funktioniert?




Java:
private void jButtonTicketBuchenActionPerformed(ActionEvent evt) 
	{
		try {			
			System.out.println("Film_ID: "+jPanelFilmListe.getFilmID());
			System.out.println("Preisklasse: "+getPreisklasse());
			PreparedStatement TicketBuchenStmt = Methoden.getSqLiteVerbindung().prepareStatement(
					"insert into Ticket values( " 
					+"'"+NeuerDatensatz()+"', "
					+"Current_Date, "
					+"Current_Date, "
					+"'"+getPreisklasse()+"', "
					+"'"+jPanelFilmListe.getFilmID()+"')");
			
			TicketBuchenStmt.executeUpdate();

			System.out.println("Ticket gebucht!");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	private int NeuerDatensatz(){
		int ND = 0;
		try {

			ResultSet NeuerDatensatz;
			PreparedStatement NeuerDatensatzStmt= Methoden.getSqLiteVerbindung().prepareStatement(
					"select ID from Ticket " 
					+"where ID = (select max(ID) from Ticket)");
			NeuerDatensatz = NeuerDatensatzStmt.executeQuery();
			NeuerDatensatz.next();

			ND = NeuerDatensatz.getInt(1)+1;
			System.out.println("Neuer Datensatz: "+ND);

		} catch (SQLException e) {
			e.printStackTrace();
		}
		return ND;
	}


Java:
private void jButtonStornoActionPerformed(ActionEvent evt) {
try {
	PreparedStatement TicketStornoStmt=Methoden.getSqLiteVerbindung().prepareStatement(
					"delete from Ticket "+
					"where ID = ?");
		TicketStornoStmt.setString(1, jTextFieldTicketNummer.getText());
			
		TicketStornoStmt.executeUpdate();
		System.out.println("Ticket storniert");
	} catch (SQLException e) {
		e.printStackTrace();
	}
}
 

California

Aktives Mitglied
Ersma ein bisschen Kritik:
warum verwendest Du ein PreparedStatement, wenn Du keine Parameter verwendest? Dazu sind PreparedStatements da...

Es reicht "SELECT MAX(ID) AS ID FROM Ticket" ....

Nun zu Deinem Problem:
In der Storno- Aktion hast Du ja mit Parametern im Statement gearbeitet, leider falscher Typ:
Id ist doch numerisch, oder? Passt nicht zu String, oder? Ist 3 gleich Hugo?
Also musst Du für den Parameter auch einen numerischen Wert angeben...

Noch Dazu:
vielleicht musst Du eine Transaktion um deine Anweisung spannen oder die Connection auf AutoCommit setzen.
Das merkt man daran, dass man bei geöffneter Connection (=Programm läuft) wunderschön auf der Datenbank die Änderungen sehen kann, die nach dem Schliessen der Connection (=Programm beendet) auf einmal wieder rückgängig gemacht sind...
 

LuckyGuy

Mitglied
Vielen Dank für deine Kritik und Hilfe

Habe die Punkte überarbeitet und die Connection auf AutoCommit gestellt.
Hat aber leider nicht geholfen.

"Transaktion um deine Anweisung spannen" Kannst du mir erklären was damit gemeint ist?
 

bERt0r

Top Contributor
Du musst deine Statements und deine Connection nach getaner Arbeit schließen, sonst müllst du dir den Speicher zu. Ausserdem ist es Ratsam einen ConnectionPool zu verwenden. PreparedStatements kannst du am einfachsten so erzeugen:
Java:
PreparedStatement stmt=connection.prepareStatement("INSERT INTO emp (ename,empno) VALUES(?,?)");
Und danach die Parameter an die ? setzten:
Java:
stmt.setString(1,"Hägar der Schreckliche");   //Position als Zahl, beginnt bei 1
stnt.setInt(2, 1234);

Deine neuerDatensatz() Funktion ist auch nicht optimal. Um einen fortlaufenden Schlüssel zu erstellen gibts das autoincrement Schlüsselwort in fast jeder Datenbank. SQLite Autoincrement
Das heisst, die DB fügt automatisch einen fortlaufenden Wert ein, wenn du keinen spezifizierst.
 

LuckyGuy

Mitglied
Vielen Dank für deine Hilfe
Dein Kommentar zu NeuerDatensatz() hat mich auf die erste Hälfte der Lösung gebracht.
TicketBuchen funktioniert jetzt.

Aber kannst du mir SQLite Autoincrement erklären?
Ich habe es getestet und hatte dann immer ein leeres Feld anstatt der nächst höheren Zahl.
 

LuckyGuy

Mitglied
Zur Zeit sieht das Statement so aus.
Wie muss das ganze den mit Autoincrement aussehen

Java:
PreparedStatement TicketBuchenStmt = Methoden.getSqLiteVerbindung().prepareStatement(
					"insert into Ticket values( " 
					+"(select max(ID)from Ticket)+1, "
					+"Current_Date, "
					+"Current_Date, "
					+"?, "
					+"?)");
			TicketBuchenStmt.setInt(1, getPreisklasse());
			TicketBuchenStmt.setInt(2, jPanelFilmListe.getFilmID());
			
			TicketBuchenStmt.executeUpdate();


Nach dem Muster habe ich es versucht

SQL:
insert into car(marke, farbe) values ("Audi","blau")
 

bERt0r

Top Contributor
SQL:
CREATE TABLE auto(autoNr int AUTO_INCREMENT PRIMARY KEY, name varchar2(100));
INSERT INTO auto (name) VALUES ('AuWeh Polo');
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D MySQL Daten werden aus Datenbank gelesen, obwohl sie dort gar nicht angekommen sind Datenbankprogrammierung 8
G Daten werden nicht in die datenbank geschrieben Datenbankprogrammierung 6
M Die gezogenen Daten werden nicht richtig ins JTableeingefügt Datenbankprogrammierung 8
R Mongodb Daten werden immer überschrieben Datenbankprogrammierung 7
JG12111989 DB-Daten werden falsch dargestellt Datenbankprogrammierung 7
L CLOB-Daten werden beim Einfügen in die Datenbank geändert? Datenbankprogrammierung 5
ARadauer Wann werden Daten übertragen bzw geladen Datenbankprogrammierung 5
P Es werden keine Daten mehr in die Tabelle eingefügt Datenbankprogrammierung 4
S MySQL und Java: Falsche Daten werden ausgelesen Datenbankprogrammierung 9
D Alte Daten ins neue Modell quetschen Datenbankprogrammierung 6
R Mongodb Daten in einem bestimmten Document speichern Datenbankprogrammierung 1
OnDemand Daten auf mehrere Tabellen aufteilen oder Spalten nutzen Datenbankprogrammierung 2
B Daten HSQL-DB Datenbankprogrammierung 2
V H2 ManyToMany wie speichere ich die Daten? Datenbankprogrammierung 10
thobren Projekt SQlite! Wie kann ich auf auf SQlite Daten zugreifen? Datenbankprogrammierung 4
OnDemand Daten verschlüsseln Datenbankprogrammierung 42
L Oracle Daten in Häppchen selektieren Datenbankprogrammierung 5
L Oracle Daten von Oracle zu MSSQL übertragen Datenbankprogrammierung 4
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
Z Ausgabe nur bestimmter Daten Datenbankprogrammierung 6
E netbeans - jsp Daten in Datenbank hinzufügen Datenbankprogrammierung 2
N Java Abfrage über GUI, Daten hinzufügen Datenbankprogrammierung 54
Kirby.exe Vorschläge zur Verschlüsselung von Daten in der DB Datenbankprogrammierung 2
T Java Spiel Daten speichern Datenbankprogrammierung 1
LimDul H2 Embedded DB und Gigabytes an Daten Datenbankprogrammierung 0
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
R Wie mit zu viele Daten umgehen? Datenbankprogrammierung 2
F MySQL Wie speichere ich Daten zeitlich abhängig? Datenbankprogrammierung 4
T Oracle Normalisierung und Daten splitten Datenbankprogrammierung 1
K H2 Daten in die H2 console DB eintragen Datenbankprogrammierung 2
L SQLite Ändern der Daten in einem UNIQUE Feld Datenbankprogrammierung 1
S Daten von SQLite Datenbank nutzen Datenbankprogrammierung 5
P JSP - Daten aus 2 Tabellen in eine neue Tabelle einfügen Datenbankprogrammierung 1
L Oracle Daten von einem Server zum andere kopieren Datenbankprogrammierung 24
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
L MySQL Vergleichen von Array-Inhalt, Ausgabe gleicher Daten Datenbankprogrammierung 3
W Daten in Java intern abfragen Datenbankprogrammierung 1
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
I MySQL Datenbankstruktur angleichen - Daten behalten Datenbankprogrammierung 7
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
P LDAP: Daten eintragen funktioniert nicht Datenbankprogrammierung 7
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
O mit Multi-Thread Daten aus Datenbank lesen und schreiben Datenbankprogrammierung 22
F Daten verdichten Datenbankprogrammierung 0
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
B Daten aus DB in Word Dokument Datenbankprogrammierung 2
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
D Daten posten auf RestApi (Mongodb/NoSQL) Datenbankprogrammierung 0
I Fehler bei Ausgabe der Daten aus der DB Datenbankprogrammierung 3
OnDemand MySQL Daten aktualisieren Datenbankprogrammierung 6
D Daten von einem Server in eigenem Java-Programm benutzen Datenbankprogrammierung 6
M Vergleich von Daten in verschiedenen Tabellen Datenbankprogrammierung 1
S Daten aus Form in Datenbank nur einmal eintragen Datenbankprogrammierung 2
6 JBDC Daten verschlüsseln? Datenbankprogrammierung 2
F MySQL Daten ändern über Java Datenbankprogrammierung 3
G SQLite Daten aus SQLite DB in andere SQLite DB importieren Datenbankprogrammierung 4
H Grosse Menge an Daten in eine Datenbank Datenbankprogrammierung 32
M Daten nachträglich hinzufügen Datenbankprogrammierung 6
2 MySQL Daten aus einer Array auslesen und MySQL Statment erstellen. Datenbankprogrammierung 5
E Daten einer SQL-Datenbank aus Combobox in labels schreiben Datenbankprogrammierung 6
N HSQLDB Daten Auslesen Datenbankprogrammierung 3
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
P MySql daten in leeren jtable übertragen Datenbankprogrammierung 5
SexyPenny90 SQL Daten sortieren und top 5 ausgeben Datenbankprogrammierung 7
L Hibernat will Daten nicht einfügen??? Datenbankprogrammierung 2
B MySQL DB Daten aktualisieren Datenbankprogrammierung 9
Kenan89 Oracle Daten einer Tabelle in Array speichern Oracle Datenbankprogrammierung 10
D Übersichtliche Zuweisung von Daten in Tabellen Datenbankprogrammierung 17
C ResultSet enthält nicht alle Daten Datenbankprogrammierung 4
A Problem mit Eintragen von Daten in eine Datenbank mittels DAO Datenbankprogrammierung 4
J Daten synchronisieren in Multi-Client-Anwendungen (Hibernate) Datenbankprogrammierung 6
S JPA: DB Schema ändern und Daten nicht verlieren - wie? Datenbankprogrammierung 5
T MySQL Select: Zusammenfassen von Daten und bilden von Durchschnitt? Datenbankprogrammierung 4
F Daten in die DB hinzufügen Datenbankprogrammierung 7
H Klasse welche Mysql Daten zurück gibt Datenbankprogrammierung 18
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
H Daten in/aus Datenbank schreiben Datenbankprogrammierung 2
M DropDownBoxen mit MySQL Daten füllen Datenbankprogrammierung 3
E MySQL Daten in die Datenbank eingeben via Java Programm Datenbankprogrammierung 3
F ORA 17410 Keine weiteren Daten aus Socket zu lesen Datenbankprogrammierung 2
B Daten aus Datenbank holen Datenbankprogrammierung 6
T Problem beim schreiben von daten Datenbankprogrammierung 4
N Daten aus Datenbank abfragen und anzeigen in der Praxis?? Datenbankprogrammierung 2
G MySQL Bekomme keine Daten. Datenbankprogrammierung 7
G Daten aggregieren Datenbankprogrammierung 11
Gossi Oracle 2 Daten (Datum) vergleichen Datenbankprogrammierung 6
W MySQL Daten aus bestimmter Spalte lesen Datenbankprogrammierung 2
E MySQL Befüllen einer MySQL DB mit großen Daten Datenbankprogrammierung 6
J Doppelte Daten in Spalte, nur die erste abrufen wie? Datenbankprogrammierung 15
P Daten aus MySql Datenbank lesen??? Datenbankprogrammierung 6
J Daten vergleichen Datenbankprogrammierung 10
S Daten einer Tabelle vergleichen und ggs neuen Wert einfügen Datenbankprogrammierung 8
X Daten einer DatenbankTabelle in JTable darstellen Datenbankprogrammierung 13
T Designfrage: DB-Daten direkt oder verzögert speichern Datenbankprogrammierung 2
Dragonfire Daten aus jsp Datei in datenbank speichern Datenbankprogrammierung 15
A Daten von Webshop einlesen Datenbankprogrammierung 5
S Daten aus jTextfiled in DB schreiben - SQL Befehl Datenbankprogrammierung 2
T Daten aus DB in variable Zahl an Variablen speichern Datenbankprogrammierung 18
A Datenbankanbindung an mySQL und Ein-/Auslesen der Daten Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben