# Welches Datenbanksystem



## konsi (21. Mai 2012)

Hallo,

ich bin neu was Datenbanksysteme in Java angeht und wollte fragen was die alten Hasen  für ein System empfehlen würden, welches aber auch in der Praxis verwendet wird...

Wenn jemand ein gutes Tutorial kennen würde wäre ich sehr erfreut 


LG Konstantin


----------



## maki (21. Mai 2012)

Ich empfehle die Forensuche, Titel wie "Welche Datenbank" sollten mehr als genug Ergebnisse bringen.


----------



## Marcinek (21. Mai 2012)

Nimm doch ieine Datenbank, wenn du ehh anfänger bist.


----------



## ARadauer (21. Mai 2012)

Das kommt auf die Anforderungen an...



> welches aber auch in der Praxis verwendet wird...


Also im Business Bereich ist sicher Oracle am weitesten verbreitet... wobei ich auch viel auf MySql halte...


----------



## Guybrush Threepwood (22. Mai 2012)

Das kommt sehr stark auf Deine konkrete Anwendung an. Beschreib doch mal, was Du machen möchtest. Geht es darum, lokal ein Programm mit eingebetteter Datenbank zu betreiben oder um etwas Großes (Webplattform mit vielen gleichzeitigen Zugriffen und großen Datenmengen). Wie viele Datensätze und Zugriffe erwartetst Du?

Da Du Anfänger bist, wie Du selbst schreibst, geht es vermutlich um eingebettete Datenbanken für lokale Anwendungen, oder? Guckst Du hier: http://www.java-forum.org/datenbanken/122865-eingebettete-datenbanken.html


----------



## konsi (23. Mai 2012)

Ich habe mir die H2-Datenbank jetzt einmal installiert...

Das Problem, das ich habe ist das Einfügen von Datensätzen, ID ist als PRIMARY_KEY definiert aber da kommen immer Fehlermeldungen (z.B. NULL nicht zulässig für Feld "ID")...

kann mir jemand helfen, kenne das Problem von PHP her leider nicht...

mfg


----------



## Fab1 (23. Mai 2012)

Naja wenn du ID als NotNull definierst, wäre es ein Fehler wenn null drin steht ist ja wohl klar.

Ich mache meine ID's immer not Null und auto increment und wenn ein neuer Datensatz hinzugefügt wird, erhöht sich die ID automatisch und muss somit nicht per Java Code eingefügt werden. 

Ich nehme mal an das ist bei H2 auch so, wobei ich H2 nicht kenne.


----------



## konsi (23. Mai 2012)

danke, hat funktioniert


----------



## konsi (26. Mai 2012)

Hab noch ein Problem mit dem Auslesen der Anzahl von Datensätzen... (hab bereits im Forum und im Google gesucht und auch was gefunden aber es will nicht funktionieren...


```
private void faecher_button_anlegenMouseClicked(java.awt.event.MouseEvent evt) {                                                    
       
        try {
            faecher.DatenbankOffnen();
        } catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(StartScreen.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        try {
            String b = faecher_textfeld_fach.getText();
            faecher.FachAnlegen(b);
        } catch (SQLException ex) {
            Logger.getLogger(StartScreen.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            faecher.DatenbankSchliessen();
        } catch (SQLException ex) {
            Logger.getLogger(StartScreen.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
```


```
public void FachAnlegen(String fach) throws SQLException {
        if (fach == null)
        {
                System.exit(1);
        }
        else {
        try {
           ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM FAECHER");
           
           int anzahl = rs.getInt("COUNT(*)");

        } catch (Exception e) {
            Logger.getLogger(Faecher.class.getName()).log(Level.SEVERE, null, e);
        }
        }
    }
```

Also das Öffnen der Datenbank funktioniert es muss irgendwo beim Auslesen sein, kann es aber nicht entdecken 

danke


----------



## ARadauer (26. Mai 2012)

> Hab noch ein Problem mit dem Auslesen der Anzahl von Datensätze


welches?


```
ResultSet rs = stmt.executeQuery("SELECT COUNT(*) as anzahl FROM FAECHER");
           
           int anzahl = rs.getInt("anzahl");
```
geht das?


----------



## Camino (26. Mai 2012)

Muss nicht noch mit rs.next() erstmal auf den ersten Datensatz im ResultSet gegangen werden?


----------



## ARadauer (26. Mai 2012)

stimmt, aber "Hab noch ein Problem" ist halt auch eine furchtbare fehlerbeschreibung... 
Wer in der firma sowas zu mir sagt, darf gleich mal 3 Monate Support machen ;-)


----------



## Fab1 (26. Mai 2012)

ARadauer hat gesagt.:


> Wer in der firma sowas zu mir sagt, darf gleich mal 3 Monate Support machen ;-)



Da spricht der CHEF aus dir


----------



## konsi (26. Mai 2012)

nein geht immer noch nicht...


Also bei der Fehlermeldung zeigt er mir eine "java.lang.NullPointerException" an, bei folgender Zeile: 
	
	
	
	





```
ResultSet rs = stmt.executeQuery("SELECT COUNT(*) as anzahl FROM FAECHER");
```


----------



## Fab1 (26. Mai 2012)

Hast du 
	
	
	
	





```
stmt
```
 initialisiert?


```
stmt = con.prepareStatement(sql);
      ResultSet rs = stmt.executeQuery();
```


----------

