# can't write into db



## baer1208 (5. Apr 2005)

hy!

hab folgende funktion:

```
public void add(Person p) {
        PreparedStatement sqlInsert = null;
        try {            
            sqlInsert = con.prepareStatement("INSERT INTO persons " +
                                             "(name, wohnort) VALUES (?,?)");
            sqlInsert.setString(1,p.getName());
            System.out.println("name wurde gesetzt");
            sqlInsert.setString(2, p.getWohnort());
            System.out.println("wohnort wurde gesetzt");
            System.out.println("ich bin vor ExecuteUpdate");
            sqlInsert.executeUpdate();
            System.out.println("ich bin nach ExecuteUpdate");
            sqlInsert.close();
            sqlInsert = null;
        } catch (Exception e) {
            System.err.println(e);
            System.out.println("Daten wurden nicht eingetragen - add");
        } finally {
            if (sqlInsert != null) {
              try { sqlInsert.close();
              } catch (Exception i) {} 
            }
        }        
        persons.add(p);
    }
```
wie ihr seht habich auch schon mit mit dem 
	
	
	
	





```
System.out.println...
```
 geschaut ob er überall hinkommt...das tut er auch! woran kann es liegen dass er nicht in d db schreibt? verwende zum probiern MS Access...treiber usw... installiert und die Klasse ConnectionController baut die Verbindung zur DB auf u schließt sie wieder (wenns sein muss)
vielleicht noch kurz zur Erklärung: 
persons ist eine List

aufgerufen wird die funktion von einer action aus:

```
public ActionForward execute(ActionMapping actionMapping,
                                 ActionForm actionForm,
                                 HttpServletRequest servletRequest,
                                 HttpServletResponse servletResponse) {
           InputActionForm inputActionForm = (InputActionForm) actionForm;
        
           String name = servletRequest.getParameter("name");
           String wohnort = servletRequest.getParameter("wohnort");
           Person p = new Person();
           System.out.println("Person wurde erzeugt");
           System.out.println(name);
           System.out.println(wohnort);
           PersonRepository pr = new PersonRepository();
           try {
               p.setName("name");
               p.setWohnort("wohnort");
               pr.add(p);
               return actionMapping.findForward("index");
           } catch (Exception e) {
               System.err.println(e);
               System.out.println("error in InputAction");
               return actionMapping.findForward("input");
           }
       }
```

ich seh kein problem, da er überall hinkommt! 

hier noch der ConnectionController der, wie schon erwähnt, die Verbindung öffnet u schließt:

```
public class ConnectionController {

    private static java.sql.Connection con = null;

    /**damit keiner eine Instanz dieser Klasse erzeugen kann!	*/
    private ConnectionController() {	}
    /**
    * Klassenmethode, welche die Connection öffnet   */
    public static Connection getConnection() {
        String drive = "sun.jdbc.odbc.JdbcOdbcDriver";
        String urldb = "jdbc:odbc:persons";
        try {
            if (con == null || con.isClosed()) {
                Class.forName(drive);
                con = DriverManager.getConnection(urldb);
            }
       } catch (Exception e) {
           System.err.println(e);
           System.out.println("Fehler in getConnection, ConnectionControler");
       }
       return con;
   }
   /**
    * Klassenmethode, welche die Connection schliesst    */
   public static Connection closeConnection() {
       try { con.close(); //return true;
       } catch (Exception e) {
           System.err.println(e);
           System.out.println("Connection couldn't close");
           // return false;
       }
       return con;
   }
}
```

ich hoffe dass mir jemand weiterhelfen kann!
tia!

ciao baer


----------



## KSG9|sebastian (5. Apr 2005)

system.out's helfen net wirklich weiter! debug das ganze mal! und fang ne SQL Exception ab, keine Exception, das ist sauberer 

Die Datenbankverbindung existiert ?


----------



## DP (5. Apr 2005)

bei deinem odbc für access musst du in den eigenschaften das autocommit aktivieren oder selbst ein commit absetzen


----------



## KSG9|sebastian (5. Apr 2005)

Stimmt..

Connection#commit() glaub ich


----------



## baer1208 (5. Apr 2005)

danke für die antworten! komischerweise funktioniert es heute auf einmal...man soll die dinge ruhen lassen ;-)

dafür gibts jez ein anderes problem...aber hat nix mit db zu tun!

danke für die hilfen! falls noch fehler mit der db auftauchen werd ich das mit commit probiern!

SENKS

ciao baer


----------



## DP (5. Apr 2005)

*verschoben und abgehakt*


----------

