Insert Funktioniert nicht

Status
Nicht offen für weitere Antworten.

Fretful

Aktives Mitglied
ich tüftle schon die ganze zeit daran rum ... habe es aber noch nicht geschafft das ich einen Datensatz in meine Tabelle schreibe.

die Tabelle in die ich schreiben will heißt mitarbeiter, aber wenn ich mein kleines Testprogramm ausführe schreibt er keine DS in die DB.

Achja, wenn ich das Kommando welches in SQLMitarbeiter erzeugt wird per konsole eingebe gehts..... aber mit java nicht

Code:
/*
 * test.java
 *
 * Created on 07. März 2006, 15:57
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package zeiterfassungssystem;

/**
 *
 * @author Albert
 */
public class test {
    
    /** Creates a new instance of test */
    public test() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        SqlMitarbeiter sm = new SqlMitarbeiter();
        Mitarbeiter m = new Mitarbeiter(195,"Franz","Horvath","Hauptstraße 18",7551,"Stegersbach","03326/522");
        
        try{
            ErrorLog.reportToLog("alles falsch!");
            sm.insertMitarbeiter(m);
        }
        catch(MitarbeiterException e){
            System.out.println(e.getMessage());
        }
    }
    
}

Code:
/*
 * SqlMitarbeiter.java
 *
 * Created on 25. Februar 2006, 14:55
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package zeiterfassungssystem;
import java.util.*;
import java.sql.*;
import java.lang.*;
import javax.swing.*;
/**
 *
 * @author Albert
 */
public class SqlMitarbeiter extends SqlQuery {
    
    private Connection con;
    private static SqlMitarbeiter instance;
    
    /**
     * Creates a new instance of SqlMitarbeiter
     */
    public SqlMitarbeiter() {
        
    }
    
    /**
     *Diese Funktion wandelt das ResultSet in ein Obejkt um, das für die jeweilige
     *Tabelle designt werden muss
     */
    protected Object makeObject(ResultSet rs) throws SQLException{
        Mitarbeiter m = new Mitarbeiter();
        m.setMA_ID(rs.getInt(1));
        m.setVorname(rs.getString(2));
        m.setNachname(rs.getString(3));
        m.setAdresse(rs.getString(4));
        m.setPLZ(rs.getInt(5));
        m.setOrt(rs.getString(6));
        m.setTel_NR(rs.getString(7));
        return m;
    }
    
    /**
     *Diese Funktion, liest die komplette tabelle aus, und erzeugt mitarbeiter Objekte
     *die im Vektor gespeichert werden.
     */
    public Vector getList() throws MitarbeiterException{
        try{
            String sql = "select MA_ID, Vorname, Nachname,Adresse,PLZ,Ort,Tel_Nr"+
                    "from mitarbeiter order by Nachname,Vorname";
            Vector result = query(sql);
            return result;
        }
        catch(Exception e){
            throw( new MitarbeiterException(e.getMessage()));
            
        }
    }

    /**
     *Einfügen eines neuen Datensatzes in die Datenbank, der rückgabewert zeigt
     *auf die MA_ID die gerade hinzugefügt wurde.
     */
    public int insertMitarbeiter(Mitarbeiter m)throws MitarbeiterException{
        int count=0;
        
        try{
        ErrorLog.reportToLog(m.toString());
        String sql = "insert into mitarbeiter (MA_ID,Vorname,Nachname,Adresse,PLZ,Ort,Tel_Nr) "+
                  "values ("+m.getMA_ID()+",'"+m.getVorname()+"','"+m.getNachname()+
                  "','"+m.getAdresse()+ "',"+m.getPLZ()+",'"+m.getOrt()+"','"+m.getTel_Nr()+"')";
                      
        
               count = update(sql); // Count enthält die MA_ID
        }catch(Exception e){
            throw(  new MitarbeiterException(e.getMessage()));
            }    
        return count;
       
       }
    /**
     *Mit dieser Funktion kann man einzelne Daten in einem Datensatz ändern
     */
    public int updateMitarbeiter(Mitarbeiter m)throws MitarbeiterException{
        try{
            String sql = "update mitarbeiter set" + 
                    "MA_ID = "+ m.getMA_ID() + ", "+
                    "Vorname = '"+ m.getVorname() +"', "+
                    "Nachname = '"+m.getNachname()+"', "+
                    "Adresse = '"+m.getAdresse()+"', "+
                    "PLZ = "+m.getPLZ()+", "+
                    "Ort = '"+m.getOrt()+"', "+
                    "Tel_Nr = '"+m.getTel_Nr()+"' "+
                    "where id = " + m.getMA_ID();
            int count = update(sql);
            return count;
        }
        catch(Exception e){
            throw(new MitarbeiterException(e.getMessage()));
        }
                    
    }
    /*
     *Funktion zum Löschen eines Datensatzes aus der Tabelle Mitarbeiter.
     */
    public void delete(int nr)throws MitarbeiterException{
        try{
        String sql = "delete from mitarbeiter where nr = "+ nr;
        int count = update(sql);
        }
        catch(Exception e){
            throw(new MitarbeiterException(e.getMessage()));
        }
    }
}

Code:
/*
 * SqlQuery.java
 *
 * Created on 26. Februar 2006, 13:52
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package zeiterfassungssystem;
import java.sql.*;
import java.lang.*;
import java.net.*;
import java.util.*;
import java.io.*;


/**
 *
 * @author Albert
 */
public abstract class SqlQuery {
    
    protected abstract Object makeObject(ResultSet rs)throws SQLException;

    
    
    
    /** Creates a new instance of SqlQuery */
    public SqlQuery() {
    }
    
    
public int update(String sql)throws IOException,SQLException,ClassNotFoundException
{
    
    int count=1;    
    Statement s = null;
    Connection con = null;
    
        ErrorLog.reportToLog(sql);
        con = ConnectionManager.getConnection();
        s = con.createStatement();
        ErrorLog.reportToLog(s.toString());
        count =s.executeUpdate(sql);
        return count;
        
            
}
/*
 *Diese funktion list alle datensätze nach einander aus und erzeugt für jede Zeile ein
 *Objekt und speichert dieses in einem Vector
 */
protected Vector query(String sql) throws IOException,ClassNotFoundException,
        SQLException{
    Statement s = null;
    Connection con = null;
    Vector result = new Vector();
    ResultSet rs = null;
    
    try {
        con = ConnectionManager.getConnection();
        s = con.createStatement();
        rs = s.executeQuery(sql);
        while(rs.next()){
            result.add(makeObject(rs));
        }
        return result;
    }
    finally{
        if(s!=null) s.close();
    }
}

}

Code:
/*
 * ConnectionManager.java
 *
 * Created on 25. Februar 2006, 12:16
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package zeiterfassungssystem;
import java.sql.*;
import java.net.*;
import java.util.*;
import java.io.*;
import java.lang.*;



/**
 *
 * @author Albert
 */
public class ConnectionManager {
    
    // Klassenvariablen zum speichern der DB Parameter sowie der Verbindung
    private static final String FILE = "dbparam.txt"; // Mit Parameter gefülltes Textfile
    private static String driver;
    private static String url;
    private static String user;
    private static String password;
    private static Connection con; // Enthält die Verbindung wenn Verbindung erfolgreich
    
    
    /**
     * Creates a new instance of ConnectionManager
     */
    public ConnectionManager() {
        
    }
    
    /**
     *Baut die Verbindung zu einer MySQL Datenbank auf, wenn nötig und schließt diese
     *Verbindung dann wieder, und gibt ein Connection Refernez zurück.
     */
    public static Connection getConnection() throws IOException, ClassNotFoundException,
    SQLException{
        if(con == null)
        {
            init();
            con = DriverManager.getConnection(url,user,password);
            
        }
        return con;
        
    }
    
    /**
     *Liest die Parameter aus der Datei FILE und erzeugt Objekt
     *das die Verbindugnsdaten für eine MySQL Verbindung enthält.
     */
    public static void init() throws IOException, ClassNotFoundException
    {
     try {
         //DB-Verbindungsparameter lesen
         URL file = ConnectionManager.class.getResource(FILE);
         if(file == null)
             throw new IOException(FILE + "wurde nicht gefunden!");
         
         InputStream in = file.openStream();
         Properties p = new Properties();
         p.load(in);
         in.close();
         
         //Erzeugen der instanzvariablen für ein Objekt
         driver = p.getProperty(driver);
         driver = p.getProperty(url);
         driver = p.getProperty(user);
         driver = p.getProperty(password);
         
         
         // JDBC Treiber Laden
         // Objekt erzeugen
         Class.forName(driver);
     } 
     catch(ClassNotFoundException e){
         
     }
    }
    public static void closeConnection(){
        try{
            if(con != null){
                con.close();
                con = null;
            }
            
        }
        catch(SQLException e){}
    }
    
    
    
    
    
}
:cry:
 

bronks

Top Contributor
Wenn Du den von Deinem Programm erzeugten SQL 1:1 kopierst und auf die Datenbank losschickst dann funktioniert es? Sicher?

Das zusammenstöpseln der SQLs auf diese Art ist in diesem Fall eher eine Sache fürs Gruselkabinet, weil sehr schwer zu lesen. Ich rate Dir dringendst das PreparedStatement anszusehen. :)
 

Fretful

Aktives Mitglied
jup hab mir ganz unten bevor ich executeUpdate(sql) mache die sql variable in eine log.txt geschrieben:

Code:
insert into mitarbeiter (MA_ID,Vorname,Nachname,Adresse,PLZ,Ort,Tel_Nr) values (195,'Franz','Horvath','Hauptstraße 18',7551,'Stegersbach','03326/522')
funktioniert einwandfrei !

nur bei meinem Programm funktioniert es nicht ! :( Ajo das Thema das du unten angesprochen hast muss ich mir morgen dann durchlesen --- weil recht unpraktisch kam mir das ganze schon vor ^^ aber wie gesagt --- ist mein erstes JDBC Java programm ^^
 

Bleiglanz

Gesperrter Benutzer
Code:
count = update(sql); // Count enthält die MA_ID
nein, count = 1 wenn alles gut gegangen, count = 0 wenn nicht ...
 

Fretful

Aktives Mitglied
bronks hat gesagt.:
Fretful hat gesagt.:
... nur bei meinem Programm funktioniert es nicht ! ...
Was für eine Exception kommt?

Code:
Thu Mar 09 15:55:48 CET 2006  Treiber konnte nicht geladen werden: java.lang.ClassNotFoundException: com.mysql.jdbc.driver

das "treiber konnte nicht geladen" hab ich mir zugeschrieben --- vorhin versuche ich mit Class.forName(driver) den Treiber zu laden.

in der stringvariable driver steht com.mysql.jdbc.driver....

Aja hab ne MySQL 5.0 Datenbank laufen im hintergrund und benutze den J / connector Version 3.1.12

ich hab diesen auch ins Java vereichnis kopiert ... in meinem Fall: C:\Programme\Java\jdk1.5.0_06\jre\lib\ext
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
G Insert in MS SQL Server Db funktioniert nicht richtig Datenbankprogrammierung 16
P Insert Into mit Acces und Autowert funktioniert nicht Datenbankprogrammierung 2
A INSERT funktioniert nur im Debug-Modus Datenbankprogrammierung 19
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
O HOW TO INSERT PRIMARY INTO ANOTHER TABLE AND USE IT AS FOREIGN KEY TO DISPLAY DATA IN A RELATIONSHIP Datenbankprogrammierung 3
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
A MySQL Select und Insert in Java Datenbankprogrammierung 15
S PostgreSQL Bytea INSERT Datenbankprogrammierung 8
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
D Insert Methode per Servlet Datenbankprogrammierung 2
D Insert Methode per Servlet Datenbankprogrammierung 0
D SQLite INSERT OR REPLACE INTO macht neuen Eintrag?! Datenbankprogrammierung 2
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
B JPA->fehler beim Insert in die Datenbank Datenbankprogrammierung 3
A Oracle insert Array in DB Datenbankprogrammierung 7
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
Y MySQL Eclipselink Insert JSF Beispiel gesucht Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
M Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben? Datenbankprogrammierung 6
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
J SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt Datenbankprogrammierung 5
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
M MySQL Insert über mehrere Tabellen Datenbankprogrammierung 7
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
B MS SQL: Insert LOB Datenbankprogrammierung 4
M MySQL INSERT will einfach nicht funktionieren Datenbankprogrammierung 9
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C insert into mit between-Anweisung Datenbankprogrammierung 10
C Derby/JavaDB INSERT auf FOREIGN KEY schlägt fehl Datenbankprogrammierung 2
F Insert into Access Datenbankprogrammierung 3
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
E Derby/JavaDB Keine Reaktion von "insert into" im ActionListener Datenbankprogrammierung 22
A Oracle Unbekannter Fehler bei insert Befehl Datenbankprogrammierung 3
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
Kenan89 Insert ohne Auswirkung Datenbankprogrammierung 7
B MySQL myBatis INSERT Datenbankprogrammierung 13
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5
L H2 Auto INC Primary Key & Insert Datenbankprogrammierung 8
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
F H2:Wie kann man insert eine Reihe "int" wert als blob in table? Datenbankprogrammierung 12
S MySQL INSERT schlägt nicht fehl, fügt aber auch nichts ein Datenbankprogrammierung 13
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
L MySQL Prepared Statement batch langsamer als bulk insert? Datenbankprogrammierung 10
M Insert in Table mit 250 Feldern Datenbankprogrammierung 2
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
A Insert Methode Syntaxfehler Datenbankprogrammierung 2
G INSERT DATE in Oracle-DB Datenbankprogrammierung 11
G ODBC Insert und gleich danach Selects Datenbankprogrammierung 8
Iron Monkey Insert into Spalte ID AUTO_INCREMENT Datenbankprogrammierung 7
C ID-Rückgabe bei INSERT Datenbankprogrammierung 5
D mysql insert - performance/robustheit, "best practice" Datenbankprogrammierung 15
M Hibernate: Insert statt Update Datenbankprogrammierung 8
C Rückgabe ob INSERT erfolgreich Datenbankprogrammierung 11
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
K DB2 Insert mit Subselect Fehler Datenbankprogrammierung 2
M Derby insert, ID auslesen Datenbankprogrammierung 3
W Problem bei Insert mit JDBC auf MS-SQL-Server 2005 Datenbankprogrammierung 7
G Frage zum Insert-Statement Datenbankprogrammierung 2
R Probleme mit Insert Datenbankprogrammierung 2
M Insert Update usw. Datenbankprogrammierung 2
P Insert into mit zwei Datenbanken Datenbankprogrammierung 3
S Insert mit Select Datenbankprogrammierung 6
G INSERT-STATEMENT Datenbankprogrammierung 6
M insert in 2 tabellen Datenbankprogrammierung 7
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
V Fehlermeldung beim Insert Datenbankprogrammierung 16
S Insert into , executeupdate oder executequery Datenbankprogrammierung 3
B PrepareStatement "Insert into" fehlermeldung Datenbankprogrammierung 13
D Insert Oracle BLOB Datenbankprogrammierung 1
T ibatis + "generated p-key" nach insert? Datenbankprogrammierung 24
G Herausfinden des Primary Keys nach INSERT-Kommando? Datenbankprogrammierung 4
G INSERT abfragen ob erfolgreich? Datenbankprogrammierung 5
D INSERT String enthält ' wie kann man das Escapen? Datenbankprogrammierung 4
T INSERT-Befehl in Java für Oracle Datenbankprogrammierung 4
Y Hibernate - Datum Insert Datenbankprogrammierung 7
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
U INSERT INTO von 2 Textfeldern Datenbankprogrammierung 6
D Syntaxfehler in der INSERT INTO Anweisung Datenbankprogrammierung 2
F JAVA & MySQL : INSERT INTO DB ! Datenbankprogrammierung 2
D Problem mit INSERT INTO Datenbankprogrammierung 19
S insert into table Datenbankprogrammierung 8
S Insert in Datenbank Datenbankprogrammierung 15

Ähnliche Java Themen


Oben