SQLite fügt nur den ersten Datensatz ein

L

Louis94

Gast
Hi,

Ich versuche gerade an einer SQLite Datenbank meine Datensätze zu speichern. Den ersten Kontakt speichert es, aber wenn ich einen zweiten Kontakt anlege kommt keine Fehlermeldung er wird erzeugt und ist angeblich in der Datenbank. Aber nach einem Neustart wird nur der erste Kontakt wieder angezeigt. Ich bekomm keine Fehlermeldung. Ich hab die Datenbank schon per Editor angeschaut, aber beim hinzufügen eines Datensatzes per Java wird der zweite dort auch wieder nicht angezeigt.

Hier der Quellcode:
Java:
package datenbank;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import Kontakt.Kontakt;

public class Datenbank{
	
	private static Datenbank dieDatenbank= new Datenbank();
	private Connection dbVerbindung;
	
	private Datenbank()
	{
		try
		{
			//Class.forName("com.mysql.jdbc.Driver").newInstance();
			//dbVerbindung = DriverManager.getConnection("jdbc:mysql://128.65.220.93:3306/ni22430_1_DB","ni22430_1_DB","m0juu2oJ");
			
			
			Class.forName("org.sqlite.JDBC");
			dbVerbindung = DriverManager.getConnection("jdbc:sqlite:kontakt.db");
			
			dbVerbindung.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS kontakte (`id` INT( 100 ) NOT NULL PRIMARY KEY ,`vorname` VARCHAR( 100 ) NOT NULL ,`nachname` VARCHAR( 100 ) NOT NULL ,`privadr` VARCHAR( 100 ) NOT NULL ,`privtel` VARCHAR( 100 ) NOT NULL ,`privmobil` VARCHAR( 100 ) NOT NULL ,`privfax` VARCHAR( 100 ) NOT NULL ,`geschadr` VARCHAR( 100 ) NOT NULL ,`geschtel` VARCHAR( 100 ) NOT NULL ,`geschfax` VARCHAR( 100 ) NOT NULL) ");
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
	
	public static Datenbank getInstance()
	{
		return dieDatenbank;
	}
	
	public void create(Kontakt k)
	{
		try
		{
			PreparedStatement prepStatement = dbVerbindung.prepareStatement("INSERT INTO kontakte VALUES(?,?,?,?,?,?,?,?,?,?)");
			int i  = nextId();
			prepStatement.setInt(1, i);
			prepStatement.setString(2, k.getVorname());
			prepStatement.setString(3, k.getNachname());
			prepStatement.setString(4, k.getPrivatAdresse());
			prepStatement.setString(5, k.getPrivatFestnetz());
			prepStatement.setString(6, k.getPrivatHandy());
			prepStatement.setString(7, k.getPrivatFax());
			prepStatement.setString(8, k.getGeschAdresse());
			prepStatement.setString(9, k.getGeschFestnetz());
			prepStatement.setString(10, k.getGeschFax());
			prepStatement.executeUpdate();
			
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
	
	public Kontakt read(int id)
	{
		try
		{
			PreparedStatement prepStatement = dbVerbindung.prepareStatement("SELECT vorname, nachname, privadr, privtel, privmobil, privfax, geschadr, geschtel, geschfax FROM kontakte WHERE id = ?");
			prepStatement.setInt(1, id);
			ResultSet ergebnis = prepStatement.executeQuery();
			if (ergebnis.next())
			{				
				Kontakt k = new Kontakt(ergebnis.getString(1), ergebnis.getString(2), ergebnis.getString(3), ergebnis.getString(4), ergebnis.getString(5), ergebnis.getString(6),ergebnis.getString(7), ergebnis.getString(8), ergebnis.getString(9));
				k.setId(id);
				return k;
			}
		}
		catch (Exception ex)
		{
			System.out.println(ex.getMessage());
			ex.printStackTrace();
		}
		return null;
	}
	
	public void update(Kontakt k)
	{
		try
		{
			PreparedStatement prepStatement = dbVerbindung.prepareStatement("UPDATE kontakte SET vorname = ?, nachname = ?,"
																			+"privadr = ?, privtel = ?, privmobil = ?, privfax = ?,"
																			+"geschadr = ?, geschtel = ?, geschfax = ? WHERE id = ?");
			prepStatement.setInt(10, k.getId());
			prepStatement.setString(1, k.getVorname());
			prepStatement.setString(2, k.getNachname());
			prepStatement.setString(3, k.getPrivatAdresse());
			prepStatement.setString(4, k.getPrivatFestnetz());
			prepStatement.setString(5, k.getPrivatHandy());
			prepStatement.setString(6, k.getPrivatFax());
			prepStatement.setString(7, k.getGeschAdresse());
			prepStatement.setString(8, k.getGeschFestnetz());
			prepStatement.setString(9, k.getGeschFax());
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
	
	public void delete(Kontakt k)
	{
		try 
		{
			PreparedStatement prepStatement = dbVerbindung.prepareStatement("DELETE FROM kontakte WHERE id = ?");
			prepStatement.setInt(1, k.getId());
			prepStatement.executeUpdate();
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
	
	public List<Kontakt> kontakteLaden()
	{
		try
		{
			ResultSet rs = dbVerbindung.createStatement().executeQuery("SELECT id FROM kontakte ORDER BY nachname");
			List<Kontakt> kontaktlist = new ArrayList<Kontakt>();
			
			while (rs.next())
			{
				kontaktlist.add(read(rs.getInt(1)));
			}
			
			return kontaktlist;
				
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
			return null;
		}
	}
	
	private int nextId()
	{
		ResultSet rs;
		int i = 1;
		try {
			rs = dbVerbindung.createStatement().executeQuery("SELECT id FROM kontakte ORDER BY id DESC");
			
			if (rs.next())
			{
				i = rs.getInt(1);
			}
			
			i++;
			return i;
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return i;
	}
	
	private static String defaultDirectory()
	{
	    String OS = System.getProperty("os.name").toUpperCase();
	    if (OS.contains("WIN"))
	        return System.getenv("APPDATA");
	    else if (OS.contains("MAC"))
	        return System.getProperty("user.home") + "/Library/Application "
	                + "Support";
	    else if (OS.contains("NUX"))
	        return System.getProperty("user.home");
	    return System.getProperty("user.dir");
	}
}
 
L

Louis94

Gast
Sorry, für den Doppelpost, geht aber leider nicht anders.

Sobald ich es mit MySQL mache geht aber alles einwandfrei, ich weiß einfach nicht was falsch ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T SQLite Alternativen zu SQlite, dateibasiert, leicht verschlüsselbar, Nutzerverwaltung Datenbankprogrammierung 21
B SQLite + jdbc + IntelliJ-Consumer = "No suitable driver found..." Datenbankprogrammierung 15
Maxim6394 JPA 3.2 & SQLite - LocalDateTime wird falsch geladen Datenbankprogrammierung 1
Maxim6394 EclipseLink + SQLite | Unable to acquire a connection from driver [null] Datenbankprogrammierung 6
J SQLite Abfrage fehlerhaft - komme nicht weiter - please help. Datenbankprogrammierung 3
thor_norsk SQLite Fehlermeldung Datenbankprogrammierung 4
N JDBC SQLITE und Cascading Datenbankprogrammierung 2
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
B SQLite Befehl bauen? Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
thobren Projekt SQlite! Wie kann ich auf auf SQlite Daten zugreifen? Datenbankprogrammierung 4
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
D SQLite Collections oder Arrays in SQLite abbilden Datenbankprogrammierung 7
N ORM für Sqlite Datenbankprogrammierung 4
M SQLite Datenbank mit SQLite Datenbankprogrammierung 7
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
N SQLite Datenbankprogrammierung 2
S Daten von SQLite Datenbank nutzen Datenbankprogrammierung 5
B SQLite Frage zu SQLite Datenbankverbindung Datenbankprogrammierung 7
E Sqlite-jdbc Mitliefern Datenbankprogrammierung 4
X Sqlite Fks Datenbankprogrammierung 4
C JDBC und SQLite Datenbank Datenbankprogrammierung 8
X SQLite SQLite Programm beendet/führt nicht weiter aus Datenbankprogrammierung 12
Sam96 SQLite mit JavaFX Datenbankprogrammierung 1
T sqlite select Datenbankprogrammierung 12
V SQLite Performance: 1 Datei mit einzelnen Einträgen gegenüber SQLite Datenbankprogrammierung 7
F Java SQLite Error Datenbankprogrammierung 19
F Sqlite cannot commit Datenbankprogrammierung 2
H SQLite Sqlite Datenbank direkt einbinden. Datenbankprogrammierung 5
U Dom Parser und SQLite füllen Datenbankprogrammierung 5
D SQLite Datenkbank auf WebServer möglich? Datenbankprogrammierung 4
M Datenbankausgabe .jsp per SQLite Datenbankprogrammierung 7
J SQLite Login Datenbank Datenbankprogrammierung 2
M SQLite Einstieg mit SQLite, wohin mit der DLL? Datenbankprogrammierung 7
M SQLite Speicherpfad Datenbankprogrammierung 0
G SQLite SQLite Select für View vereinfachen/optimieren Datenbankprogrammierung 4
G sqlite innerjoin Datenbankprogrammierung 5
G SQLite Daten aus SQLite DB in andere SQLite DB importieren Datenbankprogrammierung 4
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
G SQLite SQLite Abfrage Datenbankprogrammierung 4
F SQLite-Extensions unter Java Datenbankprogrammierung 2
H SQLite mit DefaultTableModel synchronisieren Datenbankprogrammierung 5
D SQLite Statement nimmt keine Namen aus getter-Methoden Datenbankprogrammierung 11
S SQLite Ausführbares Jar mit SQLite DB Datenbankprogrammierung 4
F [SQLite] Mehrere Datensätze einfügen Datenbankprogrammierung 12
H SQLite Datenkbank erstellen Datenbankprogrammierung 3
S Abfrage auf SQLite-DB Datenbankprogrammierung 2
Kasoki SQLite SQLite oder doch XML!? Datenbankprogrammierung 2
G SQLite Abfrage, ob in Tabelle X Spalte Y existiert Datenbankprogrammierung 4
G SQLJet (SQLite) - Mehrbenutzerzugriff auf Datenbank handhaben Datenbankprogrammierung 1
S SQLite in JAR Datenbankprogrammierung 8
J SQLite --> Java SDK Datenbankprogrammierung 7
P Datenbank für Java Anwendung wie SQLite ohne Installation Datenbankprogrammierung 4
P Sqlite API für JAVA ? Datenbankprogrammierung 9
feuervogel SQLite unter Linux mit Eclipse einrichten Datenbankprogrammierung 8
K SQLite Datenbankprogrammierung 5
S SQLite oder RDBMS als Datei(nicht Client/Server) Datenbankprogrammierung 5
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
S MySQL INSERT schlägt nicht fehl, fügt aber auch nichts ein Datenbankprogrammierung 13
E Aufzählung liest nur ersten Datensatz Datenbankprogrammierung 14
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
B SQL Abfrage. Nur den ersten eines Blocks Datenbankprogrammierung 2
thE_29 Vor dem ersten Posten bitte lesen! Datenbankprogrammierung 0

Ähnliche Java Themen


Oben