# Datenbank erstellen



## yax (10. Jul 2010)

Heey,

eine Frage, und zwar möchte ich gerne eine Datenbank schreiben, aber ich hab halt gar keine Ahnung.

Ich hab mir schon mehrere Artikel durchgelesen aber mir ist das nicht klar geworden wie??

Kann mir vielleicht jemand helfen??


----------



## Antoras (10. Jul 2010)

Wenn du was komplett eigenes schreiben willst, dann musst dich auf viel Arbeit einstellen. Außerdem muss dir klar sein, dass deinen DB für produktive Zwecke lange ungeeignet sein wird. In 10 Jahren oder so - da kann es sein, dass was einigermaßen gescheites zusammen bekommen hast.

Da du schon so frägst bist du dir dieser Thematik wahrscheinlich noch nicht bewusst. Aber falls ich dich jetzt nicht abgeschreckt hab: Fang mit was einfachem an. Irgendwelche Daten in eine Datei speichern und diese dann laden. Kannst ja noch eine kleine Abfragesprache erstellen. Und dann anfangen dir was einfallen zu lassen wie man verschiedene Datentypen speichert. Und noch ein paar Bücher kaufen, vllt das hier.


----------



## Gast2 (10. Jul 2010)

Du musst keine Datenbank "schreiben" sondern eine in deinem Programm benutzen 

Ich denke mal die soll für dein Notenprogramm sein? Dann schau dir mal H2 Database Engine an. Die kannst du gemütlich mit deinem Programm ausliefern und du musst nichts installieren.
Auf der Seite findest du auch nen paar Beispiele wie du die einbindest.


----------



## yax (10. Jul 2010)

Ja genau das ist fürs Notenprogramm


----------



## yax (10. Jul 2010)

Okay also ich musstewohl etwas installieren. Also von H2 Database Engine. Und ich verstehe die Beispiele nicht wirklich


----------



## Gast2 (10. Jul 2010)

Das 
	
	
	
	





```
Platform-Independent Zip
```
 musst du nicht installieren, das bindest du einfach in den class path ein.

Schau dir das Tutorial mal in ruhe an, ich denke nicht dass du in 8 Minuten schon alles durchgelesen hast 
Das ist wirklich nicht schwierig, man muss sich nur ein wenig damit befassen und ruhig mal nen paar Sachen ausprobieren


----------



## yax (10. Jul 2010)

Okay


----------



## yax (10. Jul 2010)

Also ich bekomme diese Datenbank einfach nicht gespeichert. Also ich muss zum einbinden


```
import java.sql.*;
import org.h2.tools.Csv;
import org.h2.tools.SimpleResultSet;
public class TestCsv {
    public static void main(String[] args) throws Exception {
        SimpleResultSet rs = new SimpleResultSet();
        rs.addColumn("NAME", Types.VARCHAR, 255, 0);
        rs.addColumn("EMAIL", Types.VARCHAR, 255, 0);
        rs.addRow("Bob Meier", "bob.meier@abcde.abc");
        rs.addRow("John Jones", "john.jones@abcde.abc");
        Csv.getInstance().write("data/test.csv", rs, null);
    }
}
```

das in mein Programm schreiben, aber der import ist fehlerhaft...


----------



## yax (10. Jul 2010)

nein falsch das ist ein beispiel


----------



## yax (10. Jul 2010)

aber wenn ich das in eine neue Datei schreibe und compiliere ist der import immer noch falsch..


----------



## Gast2 (10. Jul 2010)

Hast du das jar file in deinem class path?


----------



## yax (10. Jul 2010)

also ich muss die eine jar file (ich glaub auch die einzige) in  meinen Projektordner kopieren??


----------



## Gast2 (10. Jul 2010)

Nicht zwangsläufig in deinen Projektordner...
Verwendest du eine IDE? Wenn ja dann kannst du dort irgendwo externe jars einbinden.
Kompilierst du mit der Konsole? Dann musst du den Parameter 
	
	
	
	





```
-classpath
```
 verwenden und den Pfad zum jar file angeben.

Ansonsten: Let me google that for you


----------



## yax (10. Jul 2010)

So ich habe jetzt beide jar dateien in mein Ordner kopiert, doch es funktioniert immer noch nicht.

PS: Ich arbeite mit Eclipse.


----------



## Gast2 (11. Jul 2010)

Wie schon gesagt muss du die jar auch noch einbinden...
Da ich kein eclipse hab kann ich dir jetzt nicht schritt für schritt erklären wo du die jar einbinden kannst. Aber irgendwo müsste was von 
	
	
	
	





```
Java Build Path
```
 und 
	
	
	
	





```
Add external Jar
```
 stehen.


----------



## yax (11. Jul 2010)

Okay ich habe es endlich geschafft, danke für die Hilfe


----------



## yax (11. Jul 2010)

Also, wenn ich jetzt in meine Datenbank etwas reingeschrieben habe, wie kann ich denn dann auf die einzelnen Daten (z.B. nur der Name) zugreifen???

Denn ich möchte gerne das jedes einzelne Datenteil in einen JLabel oder so angezeigt wird.


----------



## Antoras (11. Jul 2010)

Guckst du hier: Lesson: JDBC Basics (The Java™ Tutorials > JDBC(TM) Database Access) und hier: sql tutorial - Google-Suche


----------



## yax (11. Jul 2010)

Aber das ist doch immer das selbe oder, egal was für eine Datenbank man hat??


----------



## yax (11. Jul 2010)

Ist das auslesen denn für jede Datenbank gleich??


----------



## yax (11. Jul 2010)

Also ich komm mit diesen Datenbank zeugs einfach nicht klar!!!

Ich kann zwar eine Datenbank mit daten füllen. Aber ich möchte meinen Inhalt eines JTextFields in der Datenbank haben, und diesen Inhalt nach einen Buttonklick wieder einlesen also der Inhalt soll wieder im JTextField stehen oder in einenJLabel..

Kann mir dies vielleicht jemand (für dumme leute) erklären??? Bitttte


----------



## Gast2 (11. Jul 2010)

Dazu gibts doch eigentlich genug beispielcode im Internet 
Aber hier mal nen paar Codeschnipsel aus meinem Programm:

Zuerst ne Verbindung zur Datenbank aufbauen:


```
Class.forName("org.h2.Driver");
        JdbcConnectionPool connectionPool = JdbcConnectionPool.create(dbUrl, userName, password);
```
dbUrl ist z.b. sowas: 
	
	
	
	





```
jdbc:h2:pfad/zur/db/databaseName
```

Wenn du jetzt Queries ausführen möchtest musst du dir zuerst eine Connection besorgen, ein Statement erstellen und dieses dann ausführen:

```
con = connectionPool.getConnection();
            PreparedStatement stmt = con.prepareStatement("SELECT * FROM Noten;");
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                int wert = rs.getInt("wert");
                System.out.println(wert);
            }
```
Angenommen: Deine Tabelle heißt 
	
	
	
	





```
Noten
```
 und besitzt eine Spalte 
	
	
	
	





```
wert
```
.


----------



## yax (12. Jul 2010)

Endlich, ich habs geschafft. 


Danke, Danke für die super netten Hilfen


----------

