Probleme und Zeitdruck: Kunden-DB (Vector)

Status
Nicht offen für weitere Antworten.
Hallo Gemeinde,
erstmal schonma danke.
Bitte helft mir, sonst krieg ich im Studium riesig Probleme. :(

Aufgabe:
Erstelle eine Kunden-DB, die Kunden in nen Vector einliest und ausgibt. => funktioniert
Erstelle dazu einen Selektor, wo man Kundennamen aus dem Vector auf Übereinstimmung suchen und ausgeben kann.
ha?s=hans etc... ha*=haber, haffner etc...
Hier Hilfe pls....
Wenn ich jemandem die Files schicken kann, wär ich dankbar, denn ich hab ziemlich Druck mit dieser Sache und verzweifel fast.



Code:
public class Kundenverwaltung { 
    
    public Kundenverwaltung() {
    }
    
    public static void main(String[] args) throws Exception {
        
        try{
            KundenContainer kc=new KundenContainer();
            kc.auswahl();
        }
        catch (NullPointerException f)
        {
        System.out.println("Fehler gefunden: Nullpointer\n"+f.getMessage());
        }
        
        catch (Exception e) {
            System.out.println("Fehler gefunden: allgemeiner\n"+e.getMessage());
        }
        
        }      
        
}



Main-Klasse, in der ich versuche zuviele Anweisungen zu vermeiden. Das Exception-Handling ist noch nicht so ausgereift, weil ichs noch nich so verstehe.



Code:
public class KundenContainer {
    
    protected static Vector v=new Vector(5,2);//static...
    protected int kundennummer;
    protected String name;
    Kunde k1=new Kunde();
    
    
    public KundenContainer() {
    }
    
    //wählt zwischen den einzelnen Menüoptionen
    public void auswahl() {
        Selektor s1=new Selektor();
        System.out.println("Kundenverwaltung");
        System.out.println("Was wollen sie tun?");
        int ein;
        
        
        
        //Auswahl-Maske, die solange wiederkommt, bis einer Abbruch wählt
        do {
            ein=IOTools.readInteger("(1) Kunde anlegen, (2) Kunde nach Knr suchen, (3) Kunde nach Name suchen (4) bisheriger Kundenstamm, () Abbruch\n");
            
            switch(ein){
                case 1: eingabe(); //Eingabe-Maske
                break;
                
                case 2: suchenKnr(); // Suche nach der KNR
                break;
                
                case 3: //s1.setEingabe(name,k1);
                        s1.sucheName(); //Suche nach Name
                break;
                
                case 4: ausgabe(); //bisheriger Kundenstamm
                break;
                
                default:
                    System.out.println("Programmende erwünscht! "); //alles andere: Abbruch
                    break;
            }
        }while(ein<5 && ein>0);
        
    }
    
    //Eingabemaske
    public void eingabe() {
        name=IOTools.readString("Wie heißt der Kunde? ");
        kundennummer=v.size()+1; //automatische Kundennummerzuweisung
        Kunde k1=new Kunde(name,kundennummer);
        v.add(k1);
    }
    
    //Ausgabeprozedur
    public void ausgabe() {
        for(Iterator iter = v.iterator(); iter.hasNext();){
            Kunde k1=(Kunde)iter.next();
            System.out.println(k1.ausgebenKunde());
        }
    }
    
    public void suchenKnr(){
        
        int suchknr=IOTools.readInteger("Welche Kundennummer wollen sie suchen? ");
        
        if(suchknr>v.size() || suchknr<1) { //fängt Kundennummern ab, die nicht existieren
            System.out.println("Kundennummer nicht vorhanden!");
        }
               
        for(Iterator iter = v.iterator(); iter.hasNext();){
            Kunde k1=(Kunde)iter.next();
            if(suchknr == k1.getKnr()){
                System.out.println(k1.ausgebenKunde());
            }
        }
    }
    
}



Nahezu alle Operationen des Programms werden hier ausgeführt.
Ich wollte eigentlich eine Klasse suche, die die suchen Kunde aufnimmt, aber dabei hieß es "Klasse Iterator not found". Warum?



Code:
public class Kunde {
    
    private String kunde;
    private String name;
    private int kundennummer;
    
    public Kunde() {
    }
    
    public Kunde(String name,int kundennummer) { 
        this.kundennummer=kundennummer;
        this.name=name;
    }
        
    public int getKnr() {
        return kundennummer;
    }

    public String getName(){
        return name;
    }
    
    public String ausgebenKunde() {
        kunde=getName()+"\t\t"+getKnr();
        return kunde; 
    }
    
}





Code:
public class Selektor {
    private boolean uebergabe;
    private boolean sternMatchV;
    private boolean sternMatchH;
    private boolean sternMatch;
    private boolean frageMatch;
    
    Kunde k1 = new Kunde();
    KundenContainer kc=new KundenContainer();
    
    /** Creates a new instance of Selektor */
    public Selektor() {
    }
    
    //    public void setEingabe(String eingabe, Kunde einKunde){
    //        this.eingabe=eingabe;
    //        this.einKunde=einKunde;
    //    }
    
    public void sucheName() {
        
        String eingabe=IOTools.readString("Suche: ");
        
        for(Iterator iter = kc.v.iterator(); iter.hasNext();){
            Kunde k1=(Kunde)iter.next();
            
            String name = k1.getName();
            int nr = k1.getKnr();
            String ausgabe2="";
            
            //Durchlauf eines einzelnen Elements und Längenbestimmung
            for(int x=0;x<eingabe.length();x++ ){
                char zwischen[] = {name.charAt(x)};
                String ausgabe = new String(zwischen);
                
                //Abfang falls Eingabe länger als vorhandene Kundennamenlänge
                if(eingabe.length()>name.length()){
                    break;
                }
                
                // falls in der Eingabe ein Fragezeichen vorhanden ist:
                if(eingabe.charAt(x)=='?'){
                    ausgabe2 = ausgabe2+ausgabe;
                }
                if (eingabe.charAt(x)==name.charAt(x)) {
                    ausgabe2 = ausgabe2+ausgabe;
                }
                if(ausgabe2.matches(name)){
                    frageMatch = true;
                }else{
                    frageMatch = false;
                }
            }
            
            
            //falls in der Eingabe ein Stern vorhanden ist:
            try{
                if(eingabe.substring(0,eingabe.indexOf('*')).matches(name.substring(0,eingabe.indexOf('*')))){
                    sternMatchV = true;
                }else{
                    sternMatchV = false;
                }
                if(eingabe.substring(eingabe.indexOf('*')+1,eingabe.length()).matches(name.substring(name.length()-(eingabe.length()-eingabe.indexOf('*')-1), name.length()))){
                    sternMatchH = true;
                }else{
                    sternMatchH = false;
                }
                
                // Vergleich, ob vorderer und hinterer Teil mit der Eingabe übereinstimmt
                if(sternMatchV && sternMatchH){
                    sternMatch=true;
                }else{
                    sternMatch=false;
                }
            }
            catch(Exception e){
            }
            
            if(sternMatch || frageMatch){
                uebergabe=true;
            }else{
                uebergabe=false;
            }
        }
    }
    public void getUebergabe(){
        if(uebergabe==true){
          System.out.println("gfunden!"); 
        }
        else 
        {
            System.out.println("nada!");            
        }
        
        //return uebergabe;
    }
    
    
}



Hier kann man nach Namen in der DB/Vector suchen!
ha?s findet z.B. hans, haus
ha* findet haller, haber, hasselbacher, halaaaaaaaaa etc....
Leider bekomm ich es nicht zum laufen, obwohl die Syntax stimmen müsste. Hab ich aus nem anderen Programm reinkopiert. Sind wohl manche Dinge einfach falsch instanziiert, glaub ich.

Kann mir jemand dabei helfen, die 4 Klassen zu sortieren und lauffähig zu machen?
Die Inhalte (und Vector) ist / sind vorgeschrieben. Es geht nur darum, dass man das Programm lauffähig macht.

Hab Druck, da ich es bis 22. fertighaben muss und wär euch daher dankbar, wenn sich jemand die Mühe macht!![/code]
 

KISS

Bekanntes Mitglied
was soll der quatsch mit dem selber machen? als kleiner vorschlag

Code:
public class Selector
    {
        private String m_pattern;
        
        public Selector(String pattern)
        {
            initPattern(pattern);
        }

        private void initPattern(String pattern)
        {
            m_pattern=pattern.replaceAll("\\*",".*").replaceAll("\\?",".");
        }
        
        public List<String> select(Collection<String> input)
        {
            final List<String> result=new ArrayList<String>();
            for(String value:input)
            {
                if(value.matches(m_pattern))
                {
                    result.add(value);
                }
            }
            return result;
        }
    }
 
Was muss ich da jetzt anpassen oder funktioniert das so?

gibt er mir z.b. bei ha?s
nen hans + knr aus, nen haus, habs etc....

Oder was muss ich anpassen?
Was ist das Ergebnis, bzw. die Ausgabe deines Selektors?

Sry für die dämliche Frage, ich steh nur tierisch unter Zeitdruck und bleib dauernd wo hängen. :(

Aber schonmal riesiges Danke. :)
 

bambi

Bekanntes Mitglied
Das sollte so funktionieren. Schon mal getestet? Versuch's einfach mal und poste den Fehler - falls es doch net laeuft.

Also wenn Du irgendwas mit "ha?s" hast, dann gibt's dir alles aus, was mit "ha" anfaengt, dann genau ein Buchstabe (nur - einer
nicht mehrere) und mit "s" endet.
Also wie Du schon meintest "ha?s" --> hans, haus, habs, ... aber NICHT hammers (bloedes bsp :? ) und auch net "has"

Dagegen funktionier "*" aehnlich - gibt Dir also fuer "ha*s" alles aus, was mit "ha" anfaengt, dann 0 - n Buchstaben
und mit "s" endet.
Also "ha*s" --> hans, haus, habs, has, hammers, ...
 

KISS

Bekanntes Mitglied
und stand alone funktioniert ? gleich garnicht, darum wird es ja nach "." dispatched
da aber im orginal ? verwendet wir, nahm ich an das ist der typische "ein-zeichen-platzhalter"
halten wir fest
orginal -> regexp
* -> .*
? -> .

und das sollte imho genau passen, ausser fuer orginal "*" muss wirklich noch was kommen, dann waere .+ richtig
oder orginal ? heist 0-1 dann muesste man das durch .{0,1} ersetzen
 
ich probiers mal gegen später.

mir ist nur vorhin aufgefallen, dass ich es eh an ne access-db anbinden soll.

soll ich weiterhin mit dem vektor verfahren oder soll ich einfach alle einzeln in die db kloppen? ich würd zu zweiterem gerade tendieren.

Kann ich für die einzelnen Datensätze aus dem resultset die Suchfunktion von oben 1zu1 übernehmen? Weiß da noch nicht, was mich erwarten wird. Bin grad an vielen anderen Baustellen noch und daher: sorry für die doofen Fragen.
Finds super, dass hier so geholfen wird, das gibts nicht überall!

wie kann ich denn die connection zu der datei herstellen?
dachte eigentlich, dass es passen müsste, aber es heißt immer, dass ich weder treiber geladen hab und datenquelle auch net bekannt ist.

die datei heißt verwaltung.mdb und darin gibt es ne tabelle kunden, auf die ich zugreifen bzw. in die ich inserten will via
INSERT INTO kunden VALUES (?,?,?) (es wären 11 Spalten, aber das is ja net der Grund, oder?)

oder müsste hinter kunden noch .... kunden (kundennummer, name, straße, telefon)

Krieg das net hin und das is noch n größeres Prob als die Suche.
Die Suche müsste halt dann auf DB angepasst werden. Was ändert sich dann?

Und danke soweit für eure Mühe!
 
Eigentlich nur zum Klarstellen: der Code ist in keinster Form irgendwo gezogen, der stammt schon von mir selbst, keine Angst! Hab ich das wo geschrieben, dass der nicht von mir ist!?

Wie gesagt. Hab nun festgestellt, dass ich das Ganze an ne DB anbinden muss. (hier Access, is ja aber nahezu egal)

Wie läuft dann die Suche nach z.B. dem Namen ab? Über die Select-Anweisung? Das is ja eigentlich nur ein String, den ich net beeinflussen kann.
Ich les grundsätzlich Daten ein und schick sie gleich an die DB.
Oder komm ich über den resultset auf die einzelnen sätze und spalten ran und kann somit wieder diesen vergleich von eingegebenerName zu DatenbankName machen!? Und hier könnte ich dann wieder diese Selektorklasse einbauen!? Das ist das erste Problem.

Das 2. ist, dass ich nicht verstehe, warum mein Programm sich nicht an die DB anbindet. Url hab ich angegeben, Treiber eigentlich geladen.
Wie muss das genau aussehen, wo muss die mdb. Datei liegen!?
Und wie hat genau ein INSERT...INTO auszusehen? (INSERT kunden INTO verwaltung, wenn man ne verwaltung.mdb hat) INSERT .... FROM....
Hab das zwar in nem Buch auch gelesen, aber an irgendwas hängts und ich weiß nicht woran...
 

bambi

Bekanntes Mitglied
mubbelbubbel82 hat gesagt.:
Wie läuft dann die Suche nach z.B. dem Namen ab? Über die Select-Anweisung? Das is ja eigentlich nur ein String, den ich net beeinflussen kann.
Wieso kannst Du die Anweisung nicht beeinflussen? Sollte doch kein Problem sein das Select-Statement dynamisch zu
erzeugen. Kleines Beispiel:
Code:
private StringBuffer getNameQuery(String name)  {
    return new StringBuffer()
    	.append("SELECT * FROM personen WHERE name like '")
    	.append(name)
    	.append("'");
}
mubbelbubbel82 hat gesagt.:
Oder komm ich über den resultset auf die einzelnen sätze und spalten ran und kann somit wieder diesen vergleich von eingegebenerName zu DatenbankName machen!? Und hier könnte ich dann wieder diese Selektorklasse einbauen!? Das ist das erste Problem.
Ja, Du bekommst ein ResultSet von der DB zurueck. Das solltest Du aber nicht verwenden, um die Daten noch irgendwie
zumzusortieren oder nur spezielle Datensaetze zu selektieren. Das sollte alles im SQL gemacht werden - soweit moeglich.
 
Ok, dann lass ich den Vektor glaub am besten raus, oder?
Und werd das Ganze mit dem Selektor (Suche) dann übers SQL machen?

Brauch ich dafür überhaupt den Stringbuffer?
Kann ich net einfach was sagen wie:
String blub;
string sql=" SELECT...FROM...WHERE name="+blub;

Funzt das? Komm leider erst nachher zum Proggen, muss gleich weg. Aber sollte gehen, oder?

----------

Hmm ich spiel gerade mit nem anderen Gedanken, da mir die Sache mit dem wieder in Vektor einlesen net so passt.
Ist das net bißl doof, wenn man dann 8 Vektoren hat?

Ich kanns ja die Suche auch über SQL Anweisungen machen, oder?
Also auch mit dem Joker und Platzhalter * und ?. Werde diesen Teil dann in den Datenbanken diskutieren.

Noch paar allgemeine Dinge:
hab ja 8 Datentypen (Kunde, Lieferant)
Soll ich die statements bzw. die con nun in jeder klasse neu definieren? muss ich das evtl sogar? Oder wie umgehe ich das?
Oder reichts aus, wenn ich es einmal in der main-class als protected deklarier?
ist halt sonst immer ne blöde doppelt und dreifach deklaration.

Ich denke fast, ich komme vorerst zurecht, wenn ich das Meiste der Abfragen und so über SQL mache.
Evtl habt ihr noch paar IDeen:
ich hab bisher Kunden einlesen, ausgeben, suchen (nach KNR, Name etc..), löschen, ändern! Hat noch einer ne Idee? Irgendn kreativer Kopp?
(hoff es versteht keiner falsch: wer sich nicht meinen Kopf zerbrechen will, muss nichts sagen *g*) Ich überleg grad, was ich noch für Funktionen einbauen könnte!? Brauch ich ein speichern oder sichert der den Datensatz eh immer sofort in der DB? Sonst wär evtl kewl, wenn das wer grob anschneiden könnte.

Danke schonmal Dirk für alles!!! Jetzt schau ich heut Nacht obs geht und leg dann mal gewaltig los bis zum nächsten Problem!
 
Evtl kann der Mod auch bißerls aufräumen hier, ich weiß, dass ich sehr konfus gepostet habe. Sorry!!!
Neuer Versuch:

Aufgabe: System zur Kunden- und Auftragsverwaltung erstellen. Soll beinhalten: einlesen, ausgeben, suchen, ändern, löschen von Datensätzen.
Dazu hab ich ne Access.Datei mit 6 Tabellen und paar Beispieldatensätzen vorliegen. (Kunde hat z.B. 11 Spalten/Attribute) Viel Schreibarbeit ist angesagt! Mehr Info ist nicht gegeben. Was wollt ihr wissen?

Code:
    public static void main(String[] args) throws Exception{
             
        try { 
        Datenbankanbindung db1=new Datenbankanbindung();
        Kunden k1=new Kunden();
        Lieferanten l1=new Lieferanten();
       
        System.out.println("Datenbanksystem der Firma PB Enterprises ");
        System.out.println("In welchemBereich wollen sie arbeiten? ");
        System.out.println("(1) Kunden ");
        System.out.println("(2) Lieferanten ");
        System.out.println("(3) Personal ");
        System.out.println("(4) Artikel ");
        System.out.println("(5) Kategorien ");
        System.out.println("(6) Versandfirmen ");
       
        int auswahl = IOTools.readInteger();       
        switch(auswahl){
            case 1: k1.auswahlKunde(); 
            break;          
            case 2: l1.auswahlLieferant();  
            break;
        }     
        }
        catch (SQLException e){
            System.out.println("Fehler! "+e.getMessage());          
        }
        catch (ClassNotFoundException e){
            System.out.println("Klasse nicht gefunden!"+e.getMessage());
        }      
        }
    }

Code:
public class Kunden {
   
    protected String sql;
    //KundenverwaltungMain kvwm=new KundenverwaltungMain();
[COLOR="Blue"]    protected PreparedStatement stmt;
    protected ResultSet rs;
    protected Connection con; [/COLOR]

    public Kunden() {
    } 
   
    public void auswahlKunde() throws Exception{ 
       Kundensuche ks=new Kundensuche();
       int kundeauswahl;
       
       do{
       kundeauswahl=IOTools.readInteger("Was tun?\n(1) Kunden anlegen (2) Kunden anzeigen (3) Kunden suchen nach KNR (4) Kunden suchen nach Name (5) HOME \n ");
      
       switch(kundeauswahl){
            case 1: anlegenKunde(); //Kunde einlesen
            break;           
            case 2: ausgebenKunde(); //Kunden aus der DB holen
            break;        
            case 3: ks.suchenKnr();  //nach Knr
            break;                    
            case 4: ks.suchenKunde(); //nach Name
            break;          
            //case 5: kvwm.main(); //home
            //break;          
            case 6: ändernKunde();
            break;         
            case 7: löschenKunde();
            break;         
            default: System.out.println("Programm wurde abgebrochen!");
            break;
       }
        }while(kundeauswahl<1 && kundeauswahl>4);       
    }
   
    public void anlegenKunde() throws SQLException{
       
        Datenbankanbindung db1=new Datenbankanbindung();
[COLOR="Red"]PreparedStatement stmt=db1.con.prepareStatement("INSERT INTO Kunden VALUES (?,?,?,?,?,?,?,?,?,?,?)");[/COLOR]
        String name=IOTools.readString("Wie heißt der Kunde? ");
        String kundencode=IOTools.readString("Welche Kundennummer soll dieser haben? "); 
              
        stmt.setString(1,"kundencode"); //Kunden-Code
        stmt.setString(2,"nameli"); //Firma
        stmt.setString(3,"test");
        stmt.setString(4,"name");
        stmt.setString(5,"name");
        stmt.setString(6,"name");
        stmt.setString(7,"name");
        stmt.setString(8,"name");
        stmt.setString(9,"name");
        stmt.setString(10,"name");
        stmt.setString(11,"name");       
        stmt.executeUpdate();     
       
        stmt.close();
        System.out.println("Kunde erfolgreich angelegt!");
    }
   
    public void ausgebenKunde() throws SQLException{       
        System.out.println("kommt noch");
        rs=stmt.executeQuery("SELECT Firma,Kunden-Code FROM Kunden");
       
        while(rs.next()){
            System.out.println(rs.getString("Firma"));
        }
        stmt.close();
    }
   
    public void ändernKunde(){
      sql="UPDATE Kunden SET Firma='blub' WHERE Code=1"; 
    }
   
    public void löschenKunde(){
        try{
       String id=IOTools.readString("Welche ID wollen sie löschen? ");
      
       Kundensuche ks=new Kundensuche();
       while(rs.next()){
           String kundencode=rs.getString("Kunden-Code"); //1,2??
           String firma=rs.getString("Firma");
       }

    }catch (Exception e){
    System.out.println(e.getMessage());
    }
    }
   
}

Die rot markierte Textstelle ist mein eines Problem:
Ich ruf erst in der Main über die Instanz die auswahl() der Kunden auf, von dort aus wähl ich ebenfalls die 1 um nen Kunden einzulesen, dann springt er an die rote Stelle und liefert ne NullpointerException. Warum?
(Info: Kunden ist ne Tabelle in meiner DB, die Anbindung funktioniert, diese Tabelle hat 11 Spalten). Selbige Exception hab ich auch beim Ausgeben der Kunden und den anderen Funktionen.

Muss ich diese stmt, con, rs (blau markiert) immer als protected oben in der Klasse haben oder wäre es geschickter ich leg ne Datenbankanbindung-Instanz (dort sind Con, stmt usw. deklariert) an und greif immer über diese darauf zurück? Instanz anlegen, oder? Bemerke: es gibt noch Artikel, Lieferanten etc.. da würd ich das ja immer wieder deklarieren, was eigentlich net stimmen kann, oder?

Diese 2 Fragen mal vorab. Oder müsst ihr noch mehr wissen? Danke schonmal!
 
jo das Problem hab ich vor 2h gelöst: db1.connect() stand in der main übrigens.
aber es geht weiter... die Zeit drängt echt tierisch, aber wenn ich das mal gelöst habe, dann bin ich erheblich weiter und es ist licht am ende. also bitte bitte angucken.

Code:
public class Datenbankanbindung {
    protected Statement stmt = null;
    protected static Connection con;
    protected ResultSet rs = null;
    
    /** Creates a new instance of Datenbankanbindung */
    public Datenbankanbindung() {
    }
    
    public void connect() throws Exception{
        
        try {
            String url = "jdbc:odbc:fake";
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con=DriverManager.getConnection(url,"unknown","unknown");
            if(con != null) System.out.println("Connect erfolgreich!");
.... //nur noch catch anweisungen

Code:
package Projekt;
import java.sql.*;
import Prog1Tools.*;


public class Kunden {
    
    
    protected String sql;
    protected PreparedStatement stmt;
    protected ResultSet rs;
    protected Connection con;
    protected Statement statement;
    
    
    /** Kunden Standardkonstruktor */
    public Kunden() {
    }
    
    /** Methode, die das Kundenauswahlmenü zeigt zur Steuerung der Kundenoperationen */
    public void auswahlKunde() throws Exception{
        try{
            /** Instanz um auf die Klasse Kundensuche zu kommen und dort Einträge zu suchen */
            Kundensuche ks=new Kundensuche();
            int kundeauswahl;
            do{
                 kundeauswahl=IOTools.readInteger("Was tun?\n(1) Kunden anlegen (2) Kunden anzeigen (3) Kunden suchen nach KNR (4) Kunden suchen nach Name (5) Kunde ändern (6) Kunde löschen (7) HOME \n ");
                switch(kundeauswahl){
                    case 1: anlegenKunde(); //Kunde einlesen
                    break;
                    
                    case 2: ausgebenKunde(); //Kunden aus der DB holen
                    break;
                    
                    case 3: ks.suchenKnr();  //nach Knr suchen
                    break;
                    
                    case 4: ks.suchenKunde(); //nach Name suchen
                    break;
                    
                    //case 5: kvwm.main(); //home: zurück zum Ursprungsmenü
                    //break;
                    
                    case 6: ändernKunde(); //Datensatz ändern
                    break;
                    
                    case 7: löschenKunde(); //Datensatz löschen
                    break;
                    
                    default: System.out.println("Programm wurde abgebrochen!");
                    break;
                }
            }while(kundeauswahl<1 && kundeauswahl>7);
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
    }
    /** Kunden einlesen und Eintrag in die Datenbank*/
    public void anlegenKunde() throws SQLException{ // funktioniert wunderbar
        try{
            Datenbankanbindung db1=new Datenbankanbindung();
            PreparedStatement stmt=db1.con.prepareStatement("INSERT INTO Kunden VALUES (?,?,?,?,?,?,?,?,?,?,?)"); //11 Attribute für nen Kunde, die in der bestehenden Tabelle stehen
            
            String kundencode=IOTools.readString("Kunden-Code: ");
            String firma=IOTools.readString("Firma: ");
            String kontaktperson=IOTools.readString("Kontaktperson: ");
            String position=IOTools.readString("Position: ");
            String strasse=IOTools.readString("Strasse: ");
            String ort=IOTools.readString("Ort: ");
            String region=IOTools.readString("Region: ");
            String plz=IOTools.readString("Postleitzahl: ");
            String land=IOTools.readString("Land: ");
            String telefon=IOTools.readString("Telefon: ");
            String telefax=IOTools.readString("Telefax: ");
            
            stmt.setString(1,kundencode);
            stmt.setString(2,firma);
            stmt.setString(3,kontaktperson);
            stmt.setString(4,position);
            stmt.setString(5,strasse);
            stmt.setString(6,ort);
            stmt.setString(7,region);
            stmt.setString(8,plz);
            stmt.setString(9,land);
            stmt.setString(10,telefon);
            stmt.setString(11,telefax);
            stmt.executeUpdate();
            
            stmt.close();
            db1.con.close();
            System.out.println("Kunde erfolgreich angelegt!");
        }
        
        catch(Exception e){
            System.out.println("Fehler in anlegenKunde()"+e.getMessage());
        }
    }
    
    /** Kunden ausgeben aus der Datenbank, kompletter Kundenstamm */
[COLOR="Red"]    public void ausgebenKunde() throws SQLException{[/COLOR]
        try {
           // PreparedStatement stmt; 
            Datenbankanbindung db1=new Datenbankanbindung();
            statement=db1.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
[COLOR="Red"]            rs=statement.executeQuery("SELECT Kunden-Code, Firma, Kontaktperson, Position, Strasse, Ort, Region, Land, Telefon, Telefax FROM Kunden");[/COLOR]
            rs.beforeFirst();
            while(rs.next()){
                System.out.println(rs.getString(1)+"\t"+rs.getString(2)); //1=Kunden-Code; 2=Firma
            }
            stmt.close();
            System.out.println("Kunden erfolgreich ausgegeben!");
            
        }catch(Exception e){
            System.out.println("Fehler in Methode: "+e.getMessage());
        }
    }
    
    /** einzelne Datensätze von Kunden ändern */
    public void ändernKunde(){
        try {
            String firmenname=IOTools.readString("richtiger Firmenname: ");
            String kundenid=IOTools.readString("Änderung welches Kunden(ID)? ");
            sql="UPDATE Kunden SET Firma="+firmenname+" WHERE Kunden-Code="+kundenid;
            rs=stmt.executeQuery(sql);
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
    }
    
    /** einzelne Datensätze von Kunden löschen*/
    public void löschenKunde(){
        try{
            String id=IOTools.readString("Welchen Kunden(ID) wollen sie löschen? ");
            rs=stmt.executeQuery("SELECT Kunden-Code,Firma FROM Kunden");
            while(rs.next()){
                String kundencode=rs.getString("Kunden-Code"); //1,2??
                String firma=rs.getString("Firma");
                
            }
            
        }catch (Exception e){
            System.out.println(e.getMessage());
        }
    }
    
    
}


Was geht: Kunde einlesen
nicht geht: Rest

Es gibt PRobleme in der rot markierten Zeile. Ein Fehler, dass 2 Parameter erwartet wurden, aber zu wenige geliefert oder so!? Warum und was muss ich fixen? KAnns wer fixen?
Hab dafür noch bis heute 24 Uhr, dann ist eh alles vorbei. :-(

Geh ich richtig in der annahme, dass anlegen funktioniert?
dass löschen, ändern, ausgebe, suchen genau nach dem selben schema funktionieren?
sprich: wenn ich diesen resultset einmal zum laufen habe, dann ist es mehr oder minder copy&paste. die sql statements dazu kann ich, aber es funktioniert halt nicht, alle kunden aus der access-db auszugeben.... bitte helft.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
S Umstellung von File auf Path - Probleme mit Stream Allgemeine Java-Themen 5
C Probleme mit javax.mail.Session Allgemeine Java-Themen 8
M tomcat probleme Allgemeine Java-Themen 1
N Division macht Probleme Allgemeine Java-Themen 14
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
MarvinsDepression Probleme mit relativem Dateipfad Allgemeine Java-Themen 1
G Geotools Probleme nach PC-Wechsel Allgemeine Java-Themen 6
nibe1501 GUI Probleme Allgemeine Java-Themen 16
C Probleme mit dem WindowBuilder Allgemeine Java-Themen 3
P Selenium . Probleme ein Iron Icon Element anzusprechen Allgemeine Java-Themen 2
B Compiler-Fehler Probleme beim Kompilieren mit Jsoup Allgemeine Java-Themen 8
K VisualVM Profiling Remote Probleme Allgemeine Java-Themen 1
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
M Probleme bei Eclipse wenn ich entpacke Allgemeine Java-Themen 15
D Regex Probleme Allgemeine Java-Themen 2
M Probleme jar datei. Allgemeine Java-Themen 2
L Vererbung Verständnis Probleme Vererbung Allgemeine Java-Themen 2
Dann07 Probleme mit OpenAL Allgemeine Java-Themen 0
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
V Compiler-Fehler Online Compiler Probleme Allgemeine Java-Themen 4
M Probleme mit Negamax-Algorithmus Allgemeine Java-Themen 29
M Probleme mit BigDecimal Allgemeine Java-Themen 1
T Probleme mit NumberFormat Allgemeine Java-Themen 5
J Probleme exe-Start mit Task Scheduler Allgemeine Java-Themen 1
B Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java Allgemeine Java-Themen 28
J Probleme beim einbinden von Zip4j library Allgemeine Java-Themen 6
F Variablen Palindromzahl (Probleme mit Methode) Allgemeine Java-Themen 9
K Data Konverter - Probleme mit Byte[] Kodierung Allgemeine Java-Themen 3
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
Neoline Interpreter-Fehler Probleme mit Arrays.toString Allgemeine Java-Themen 7
F SQLite mit Java / Probleme beim INSERT Befehl Allgemeine Java-Themen 4
J Erste Schritte Probleme mit der Hauptklasse Allgemeine Java-Themen 14
J Tetris Probleme bei Klassen Allgemeine Java-Themen 14
J MinMax VierGewinnt Probleme Allgemeine Java-Themen 22
J Probleme mit CodeCoverage und Lombok Equals Allgemeine Java-Themen 1
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
R Snake Probleme Allgemeine Java-Themen 2
A Probleme beim Verstehen einer Aufgabenstellung Allgemeine Java-Themen 11
RalleYTN 3D Objekt Translation basierend auf Rotation (Probleme mit Z Rotation) Allgemeine Java-Themen 0
Bluedaishi Druck Probleme mit PDF dateien Allgemeine Java-Themen 4
G Ant Probleme bei einer Installation die Apache ant+ivy verwendet Allgemeine Java-Themen 14
E TableView Probleme Allgemeine Java-Themen 7
perlenfischer1984 Probleme beim Mocken Allgemeine Java-Themen 6
S Kaffemaschine Programmierung Probleme Allgemeine Java-Themen 2
K Threads Runtime und Process Probleme Allgemeine Java-Themen 3
S Probleme mit unterschiedlichen Java-Versionen (Mac OS X 10.11) Allgemeine Java-Themen 0
S Event Handling keyPressed()-Probleme Allgemeine Java-Themen 2
VfL_Freak Große und seltsame Probleme nach Java-Update auf V1.8.0_91 Allgemeine Java-Themen 3
P Probleme mit Grafik (Java) Allgemeine Java-Themen 6
R probleme beim starten von jar unter linux Allgemeine Java-Themen 2
H Probleme mit DAY_OF_WEEK Allgemeine Java-Themen 4
Arif Probleme mit NullPointerException Allgemeine Java-Themen 2
E Probleme mit nextInt() und Exception Allgemeine Java-Themen 35
Streeber Probleme mit AWT-EventQueue: ArrayList Elemente hinzufügen Allgemeine Java-Themen 1
D Performance-Probleme mit Joda-Time Allgemeine Java-Themen 3
M Probleme beim rechnen, bei Zahlen mit führenden Nullen. Allgemeine Java-Themen 7
RalleYTN Probleme mit Encrypting Allgemeine Java-Themen 10
M Probleme mit Schriftarten PDFBox Allgemeine Java-Themen 3
J Probleme mit der Java-Runtime Allgemeine Java-Themen 10
G Probleme mit BufferedWriter und URL Allgemeine Java-Themen 4
S Probleme mit meinem MacBook Pro DRINGEND HILFE erbeten! Allgemeine Java-Themen 17
Androbin Interpreter-Fehler Probleme mit Rekursion - StackOverflowError Allgemeine Java-Themen 8
E JCuda-0.6.5 Probleme beim ausführen der Datei Allgemeine Java-Themen 0
M Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar Allgemeine Java-Themen 2
W JNDI - LDAP - Probleme beim editieren von Usern Allgemeine Java-Themen 0
R DBUnit Performance Probleme Allgemeine Java-Themen 0
S Probleme mit Collection Allgemeine Java-Themen 7
L Probleme mit Jar Allgemeine Java-Themen 6
N Zahlensysteme umrechnen; Probleme beim Umwandeln Allgemeine Java-Themen 4
K OOP OOP Gui Spiel + Vererbungen Probleme durch Nichtwissen!! Allgemeine Java-Themen 1
F Java Native/Shared Library (.so) laden macht Probleme Allgemeine Java-Themen 3
J Synchronized Probleme Allgemeine Java-Themen 7
J Java Progressbar & Download Probleme Allgemeine Java-Themen 10
S Probleme mit dem filechooser Allgemeine Java-Themen 1
J Comperator Probleme Allgemeine Java-Themen 4
A Probleme beim auslesen von Quelltext (HTML) Allgemeine Java-Themen 5
S Probleme mit Webappplikation Allgemeine Java-Themen 5
L Plötzlich Probleme mit der JVM :( Allgemeine Java-Themen 6
S starke performance probleme des forums Allgemeine Java-Themen 10
K Probleme bei Berechnung der Komplexität Allgemeine Java-Themen 7
R JRE Ablaufdatum seit 7u10 - Probleme bei selbst ausgelieferter JRE bekannt? Allgemeine Java-Themen 3
H Reg Exp Probleme Allgemeine Java-Themen 5
M Classpath Probleme bei JAR Generierung Allgemeine Java-Themen 2
S Probleme mit JAVA-Installation Allgemeine Java-Themen 3
D Probleme bei for-Schleife Allgemeine Java-Themen 4
R Probleme mit Javadoc Allgemeine Java-Themen 2
G Gson Probleme Allgemeine Java-Themen 2
P KI für TicTacToe programmieren > Probleme Allgemeine Java-Themen 2
M Google App Engine macht Probleme Allgemeine Java-Themen 4
H Probleme mit finally-Block und close() Allgemeine Java-Themen 4
F 2d array probleme Allgemeine Java-Themen 2
M 3D-Grafik Probleme beim drehen von Objekten Allgemeine Java-Themen 9
T Interface Probleme Allgemeine Java-Themen 8
C Eclipse Probleme bei selbst erstelltem Algorithmus Allgemeine Java-Themen 2
M Probleme mit String in Label übergeben. Allgemeine Java-Themen 6
H MediaManager Fragen/Probleme Allgemeine Java-Themen 6
U Probleme mit Kopiervorgang Allgemeine Java-Themen 3
S Probleme beim Auslesen einer Liste Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben