MySQL-Connection-Objekt übergeben

Diskutiere MySQL-Connection-Objekt übergeben im Datenbankprogrammierung Forum

  1. #1
    Wirbelwind


    MySQL-Connection-Objekt übergeben

    Hallo,

    ich bin gerade dabei den Einstieg in Java zu wagen und habe da ein kleines Problem.

    Es geht um die Verbindung zu einer MYSQL-Datenbank.
    Meine Ausgangsklasse ist diese:

    Java Code:
    1. import java.sql.*;
    2.  
    3. public class TimeSheetBalance{
    4.  
    5. Statement req;
    6.  
    7.  
    8. //Login
    9. //Abgefragt werden Passwort und Nutzername
    10.  
    11.  
    12. //Datenbankverbindung herstellen
    13.  
    14. public TimeSheetBalance(){
    15.  
    16. DatabaseConnect Db = new DatabaseConnect();
    17. con = Db.connectToMysql(XXX, XXX, XXX, XXX);
    18.  
    19. req = con.createStatement();
    20.  
    21. ResultSet rs = req.executeQuery("SELECT * FROM staff");
    22.  
    23. while(rs.next()){
    24.  
    25. System.out.println(rs.getString(3));
    26. }
    27.  
    28. }


    Sinn der Sache ist klar: Die Instanz Db der Klasse DatabaseConnect erzeugt über die Methode connectToMysql eine Verbindung zur Datenbank und gibt diese Verbindung zurück.
    Das sieht dann so aus:

    Java Code:
    1. import java.sql.*;
    2.  
    3. public class DatabaseConnect {
    4.  
    5. Connection connection;
    6.  
    7. public void DatabaseConnect(){
    8.  
    9. }
    10.  
    11.  
    12. public Connection connectToMysql(String host, String database, String user, String pwd){
    13.  
    14. try{
    15. Class.forName("com.mysql.jdbc.Driver").newInstance();
    16.  
    17. String connectionCommand = "jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+pwd;
    18.  
    19. connection = DriverManager.getConnection(connectionCommand);
    20.  
    21.  
    22. return connection;
    23. }
    24.  
    25.  
    26.  
    27. catch (Exception ex){
    28.  
    29. System.out.println("false");
    30.  
    31. }


    Tja, aber so einfach ist das leider nicht. Java sagt mir: "Unhandled exception type SQLException" bei req = con.createStatement();.

    Eigentlich müsste das doch funktionieren, oder?
    Habe ich irgendwas grundlegendes nicht verstanden? Was mache ich falsch?

    Viele Grüße,

    Wiwi

  2. #2
    eRaaaa


    a)
    Connection (Java Platform SE 6)
    Throws:
    SQLException - if a database access error occurs or this method is called on a closed connection

    -> Da fehlt ein try catch! (das gleiche bei executeQuery, also vlt den Block um beides )

    b) connectToMysql lässt sich so doch gar nicht kompilieren oder? (verschiebe mal Zeile 22 nach unten)

  3. #3
    Wirbelwind


    Super, das hat funktioniert.

    Habe den Code jetzt umstrukturiert. Das war die Lösung!!!

Java Videokurs

Keine Antwort auf Deine Suche gefunden? Registriere Dich kostenlos und stelle Deine eigene Frage zu Java!

Jetzt kostenlos registrieren