can't write into db

Status
Nicht offen für weitere Antworten.

baer1208

Aktives Mitglied
hy!

hab folgende funktion:
Code:
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
Code:
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:
Code:
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:
Code:
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

Top Contributor
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

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

baer1208

Aktives Mitglied
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
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Write Befehl Datenbankprogrammierung 10
A Socket write error Datenbankprogrammierung 2

Ähnliche Java Themen


Oben