# Bekomme keine Daten in die DB!



## maxwell (16. Feb 2005)

hallo zusammen,

hab irgendwie ein problem,wenn ich die db befüllen möcht. poste mal einen teil des codes-vielleicht sieht bitte jemand auf anhieb,was es hier hat,bzw kann mir sagen,wie die db befülle!

das ist der dialog,mit dem ich den messort einlese:
	
	
	
	





```
.
.
.        
if (ok!=false) {

            try {

              dm.addMessort(new Messort(new Integer(jTextFieldIndex.getText()),
                                        jTextFieldName.getText(),
                                        jTextFieldMoOrt.getText(),
                                        jTextFieldMoPLZ.getText()));

              System.out.println("OK-Daten eingelesen");
            }
            catch (NumberFormatException ex) {
            }
            catch (SQLException ex) {
            }
            
           setVisible(false);
        }
    }
```

zur ergänzung der konstrukter,der den messort anlegt:

```
public class Messort implements Comparable {
  private Integer messort_pk;
  private String name;
  private String plz;
  private String strasse;

  public Messort(Integer messort_pk, String name, String plz, String strasse) {
    this.messort_pk = messort_pk;
    this.name = name;
    this.plz = plz;
    this.strasse = strasse;
  }
```

und den datenmanager,welcher in die db schreiben (addMessort) sollte-das aber net tut!!!

```
public class DataManager {
  private static DataManager instance;

  private String server = "";
  private String dbname = "";
  private Properties info = new Properties();
  private Connection conn = null;
  private PreparedStatement insert_messort = null;
  private PreparedStatement update_messort = null;

  private HashMap messorte = new HashMap();

  private DataManager() {
    DatabaseMetaData dmd = null;
    info.put("user", "");
    info.put("password", "");
    info.put("charSet", "ISO-8859-1");
    String url = "jdbc:postgresql://" + server + "/" + dbname;

    try {
      DriverManager.registerDriver(new org.postgresql.Driver());
      conn = DriverManager.getConnection(url, info);
      conn.setAutoCommit(false);
      insert_messort = conn.prepareStatement("INSERT INTO messort (id, name, ort, plz) VALUES (?, ?, ?, ?);");
      update_messort = conn.prepareStatement("UPDATE messort SET name=?, ort=?, plz=? WHERE messort_pk=?;");
      dmd = conn.getMetaData();
      System.out.println("");
      System.out.println("Connection URL: " + dmd.getURL());
      System.out.println("Driver Name:    " + dmd.getDriverName());
      System.out.println("Driver Version: " + dmd.getDriverVersion());
      System.out.println("");

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

  public static DataManager getInstance() {
    return instance;
  }
  public void commit() throws SQLException {
    conn.commit();
  }

  private void close() throws SQLException {
    insert_messort.close();
    conn.close();
  }

  public void addMessort(Messort mo) throws SQLException {
    insert_messort.setInt(1, mo.getMessortPK().intValue());
    insert_messort.setString(2, mo.getName());
    insert_messort.setString(3, mo.getStrasse());
    insert_messort.setString(4, mo.getPlz());


    insert_messort.execute();
  }
.
.
.
```

dankeschön im voraus!


----------



## DP (16. Feb 2005)

und was für probleme hast du? welche exception wird geworfen?!

fragen über fragen


----------



## maxwell (16. Feb 2005)

:!: es wird keine geworfen,aber wenn ich den dialog mit den angaben zum neu anzulegenden messort ausfüll,dann ok drücke, passiert leider nichts - schreibt meine angegebenen daten nicht in die db! typkonvertierung muss ich ja keine vornehmen,oder?!?


----------



## bambi (16. Feb 2005)

hummm...

musst du nicht noch sowas schreiben wie


```
insert_messort.execute();
update_messort.execute();
```

prepareStatement() erzeugt nur das statement und fuerht es nicht aus, soweit ich weiss...


----------



## DP (16. Feb 2005)

jou, er macht ja

insert_messort.execute();


----------



## DP (16. Feb 2005)

keine ahnung ob psql ein explizites commit braucht... machma commit()


----------



## maxwell (16. Feb 2005)

hallo,

das habe ich eh geschrieben...ist nur teilweise nicht mehr im posting enthalten-sorry!
bin schon am verzweifeln  :bahnhof:


----------



## maxwell (16. Feb 2005)

@ DP: 
mein letztes posting galt der "insert-problematik"!
was meinst du mit "commit()" ? kannst mir da ein bisserl code bitte posten!
mercy


----------



## bambi (16. Feb 2005)

sorry, hatte das execute nicht gesehen...   

das commit machst du mit:

```
conn.commit();
```
da hast du doch aber auch 'ne methode implementiert, wenn ich's recht gesehen hab'


----------



## DP (16. Feb 2005)

insert_messort.execute();
insert_messort.getConnection().commit();


----------



## maxwell (16. Feb 2005)

Ihr seid wahre helden-es funktioniert!
kann jetzt beruhigt schlafen gehen,DANKE!


----------



## DP (16. Feb 2005)

wir sind die helden in strumpfhosen 

gute nacht


----------

