Datentypen Tabellentyp

googie

Mitglied
Hi Leute,
ich bin eigentlich C# Programmierer und muss teile in Java machen.
In C# gibt es den Typen wie DataTable, DataView, DataRow, DataSet die sich wunderbar eignen um mit einer Datenbank zu kommunizieren. Gib es in Java so etwas ähnliches oder wie werden hier zum Beispiel 10 Tabellen mit je 20 Zeilen zwischengespeichert?

Bsp aus C#:
Code:
...
DataTable dtKunden = new DataTable();
dtKunden = getFromDB("SELECT * FROM KUNDEN");
foreach(DataRow Row in dtKunden.Rows)
{
  string Blub = Row["KD_NAME1"].ToString();
  Blub += " " + Row["KD_NAME2"].ToString();
  Blub += " " + Row["KD_KURZ"].ToString();
  MessageBox(Blub,"Testausgabe");
}
...
Wobei ich in der Methode getFromDB eine Datenbankverbindung aufbaue und den gefüllten DataTable zurückgebe.


Vielen Dank für jede Antwort.
 
G

Gastredner

Gast
Mal als Beispielcode:
Java:
Class.forName("foo.bar.JDBCDriver");	// Treiber laden - DriverManager-API zeigt auch alternativen Weg über eine Datei im .jar
Connection conn = DriverManager.getConnection("my:database:url", "user", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM FOO WHERE BAR='foobar';");
while(rs.next()) {
	System.out.println(rs.getString("bar"));
}
rs.close();
stmt.close();
conn.close();
ExceptionHandling habe ich der Übersicht zuliebe weggelassen.

Statt des Weges über den DriverManager gibt es mittlerweile (ab 1.6) auch ein DataSource-Interface, welches zumindest von manchen Datenbankanbietern schon angeboten wird (Oracle z. B.). Eine Beispielverwendung gibt es hier.
 
Zuletzt bearbeitet von einem Moderator:

googie

Mitglied
Ok, danke.
Kann man in das ResultSet auch Werte schreiben und diese dann in einer Speichermethode wieder zur Datenbank schicken?

Bei C# gibt es ein RowState der besagt ob die Zeile gelöscht / verändert / hinzugefügt wurde und je nach dem kann ich dann meine DELETE / UPDATE / INSERT - Befehle bauen.
Danke
 
G

Gastredner

Gast
Ja, über das ResultSet kann man mittlerweile auch die Tabelleneinträge updaten. Alternativ kannst du auch über das Statement deine Befehle absetzen.
Mehr zur Änderung über das ResultSet steht in der API: ResultSet (Java Platform SE 6) (einfach ein Stückchen runter scrollen, zwei Beispiele stehen noch in der allgemeinen Beschreibung der Klasse).
 

Neue Themen


Oben