Java lernen

Brauche Hilfe bei meinem Programm !

Diskutiere Brauche Hilfe bei meinem Programm ! im Datenbankprogrammierung Forum; Hallo Freunde, Ich hab ein Problem bei meinem Programm wo ich überhaupt nicht mehr weiter komme , es geht darum ein java Programm zu entwickeln...

  1. Jeff123
    Jeff123 Neues Mitglied
    Hallo Freunde,

    Ich hab ein Problem bei meinem Programm wo ich überhaupt nicht mehr weiter komme , es geht darum ein java Programm zu entwickeln welches eine Verbindung zu "phpMyAdmin" erstellt und dabei in meiner vorhandenen Tabelle(Students) die Daten Sätze einträgt


    Für die Verbindung benutze ich MAMP, die auch soweit steht da ich die Daten Sätze abfragen kann.

    Das Programm läuft...

    Ich kann die komplette Tabelle abfragen(Students).

    Aber ich kann nichts einfügen. Woran liegt das ?




    [​IMG]

    Code (Java):

    package jdbcstudent;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Scanner;


    public class JdbcStudent {
     
     
     

        public static void main(String[] args) {
         
            PreparedStatement preparedStatement = null;
            ResultSet rs;
         
            String read = "Select * FROM students";
         
            try (Connection conn = dbUtil.getConnection();
                    PreparedStatement pr = conn.prepareStatement(read);
                    ){
                rs = pr.executeQuery();
             
                while(rs.next() ) {
                 
                System.out.println(rs.getInt("id") +" "+ rs.getString("first_name") +" "+ rs.getString("last_name") +" "+ rs.getDate("dob"));
                 
                }
            }catch (SQLException e){
                e.printStackTrace();
            }
     
            Scanner input = new Scanner(System.in);
         
         
            System.out.println("Do you want to add new Students ?");
            String ans = input.nextLine();
         
            if(ans.equalsIgnoreCase("yes"))
            {
                System.out.println("Enter ID: ");
                String id = input.nextLine();
             
                System.out.println("Enter First Name: ");
                String first_name = input.nextLine();
             
                System.out.println("Enter Last Name: ");
                String last_name = input.nextLine();
             
                System.out.println("Enter your Date of Birth: ");
                String dob = input.nextLine();
             
                addStudents create = new addStudents();
                create.add(id, first_name, last_name, dob);
             
            }else{
                System.exit(1);
            }
         
        }
     
     
    }
     
    Code (Java):

    package jdbcstudent;

    import java.sql.Connection;
    import java.sql.PreparedStatement;

    public class addStudents {
     
        public addStudents() {
         
        }
     
        public void add(String id, String first_name, String last_name, String dob){
         
            String sql = "INSERT INTO `students` (`id`, `first_name`, `last_name`, `dob`)  VALUES (? , ? , ? , ?) ";
         
            try (Connection conn = dbUtil.getConnection();
                    PreparedStatement stmt  = conn.prepareStatement(dob);
                    ){
                stmt.setString(1, id);
                stmt.setString(2, first_name);
                stmt.setString(3, last_name);
                stmt.setString(4, dob);
             
             
                stmt.execute();
             
             
            }catch (Exception e){
             
            }
         
        }
             
     
    }
     
    Code (Java):

    package jdbcstudent;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;


    public class dbUtil
    {
        private static final String USERNAME = "****";
        private static final String PASSWORD = "****";
        private static final String CONN = "jdbc:mysql://localhost/school"; // oder login anstatt dem school
        private static final String SCONN = "jdbc:sqlite:login.sqlite";
     
     
     



     

     
        public static Connection getConnection() throws SQLException{
         
            return DriverManager.getConnection(CONN, USERNAME, PASSWORD);
        }
    }



     
     
  2. Vielleicht hilft dir diese Seite hier weiter (Klick!)
  3. Dompteur
    Dompteur Aktives Mitglied
    In der Klasse "addStudents", Methode "add" solltest du die Exception auf keinen Fall verschlucken, sondern zumindest ausgeben.
    Die Fehlermeldung sollte genau den Hinweis enthalten, den du brauchst.

    Übrigens ist es üblich, Klassennamen mit großen Buchstaben anfangen zu lassen.
     
  4. Jeff123
    Jeff123 Neues Mitglied
    Danke für deine Antwort,

    das Programm gibt mir keine Fehlermeldung aus, es läuft fehlerlos.

    Ich bekomme meine Tabelle ausgegeben und kann auch anschließend einen neuen Studenten eingeben, aber dieser wird nicht übernommen in meiner Datenbank, ich weiß auch nicht wohin die Eingabe verschwindet.


    Bin noch ein blutiger Anfänger ;)
     
  5. Dukel
    Dukel Aktives Mitglied
    Btw. (damit das korrekt gelernt wird) PhpMyAdmin ist eine Adminoberfläche für MySql. D.h. dein Java Programm versucht eine Verbindung zu MySql aufzubauen.
     
  6. Meniskusschaden
    Meniskusschaden Bekanntes Mitglied
    Wie sieht der verbesserte catch-Block denn jetzt aus (nach der Änderung die @Dompteur vorgeschlagen hat)?
     
  7. Jeff123
    Jeff123 Neues Mitglied
    Ich habe versucht den "catch-Block" so zu verändern das ich irgendwie eine Ausgabe dazwischen schalten kann, bis jetzt aber erfolglos, und andere Ideen habe ich auch keine mehr.


    Meine zweite Idee war das es an den Zugewiesenen rechten für meinen Benutzer liegen könnte in "phpMyAdmin".
    Aber auch hier sind alle rechte komplett verteilt.
     
  8. Dompteur
    Dompteur Aktives Mitglied
    Woran scheiterst du da ?
    Es reicht, wenn du einfach "e.printStackTrace();" in the catch-Block reinschreibst. So wie du es in der Klasse "JdbcStudent" ja schon hast.

    Es ist übrigens klar, dass du keine Fehlermeldung siehst. Der leere catch-Block verschluckt alles.

    Bist du dir sicher, dass du im INSERT-Statement die Namen unter Apostroph setzen musst ?
     
  9. Jeff123
    Jeff123 Neues Mitglied
    Nach dem ich die Veränderungen in meinem Code hinzugefügt habe , bekomme ich diese Fehlermeldung, mit der ich kaum etwas anfangen kann.
    [​IMG]


    Ich hab es auch ohne Apostroph versucht, aber ohne Erfolg.
     
  10. Meniskusschaden
    Meniskusschaden Bekanntes Mitglied
    Es bedeutet, dass du versuchst, in deinem SQL-Statement den Parameter mit der Nummer 1 zu setzen, obwohl im Statement gar keine Parameter vorgesehen sind.
     
  11. Dompteur
    Dompteur Aktives Mitglied
    Hast du schon versucht in der Anweisung
    Code (Java):
    PreparedStatement stmt  = conn.prepareStatement(dob);
    statt dem "dob" die Variable "sql" einzusetzen ?
     
  12. Hinweis: Du möchtest Java lernen? Vielleicht hilft dir diese Seite hier weiter.
Die Seite wird geladen...

Brauche Hilfe bei meinem Programm ! - Ähnliche Themen

Brauche Hilfe beim Run-Length-Decoding
Brauche Hilfe beim Run-Length-Decoding im Forum Allgemeine Java-Themen
Brauche Hilfe beim Einlesen von PNGs
Brauche Hilfe beim Einlesen von PNGs im Forum Spiele- und Multimedia-Programmierung
Wurzelzeichen in der Konsole ausgeben | Brauche Hilfe
Wurzelzeichen in der Konsole ausgeben | Brauche Hilfe im Forum Java Basics - Anfänger-Themen
Brauche Hilfe bei Java/der Ts3 API von theholywaffle
Brauche Hilfe bei Java/der Ts3 API von theholywaffle im Forum Plauderecke
Brauche Hilfe bei dieser Aufgabe
Brauche Hilfe bei dieser Aufgabe im Forum Java Basics - Anfänger-Themen
Thema: Brauche Hilfe bei meinem Programm !