MySQL-Connection-Objekt übergeben

Dieses Thema im Forum "Datenbankprogrammierung" wurde erstellt von Wirbelwind, 11. Apr. 2012.

  1. Wirbelwind

    Wirbelwind Neues Mitglied

    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:

    Code (Java):
    import java.sql.*;

    public class TimeSheetBalance{

        Statement req;
        Connection con;
       

        //Login
        //Abgefragt werden Passwort und Nutzername
       
       
        //Datenbankverbindung herstellen
       
        public TimeSheetBalance(){
           
            DatabaseConnect Db = new DatabaseConnect();
            con = Db.connectToMysql(XXX, XXX, XXX, XXX);
           
            req = con.createStatement();
           
            ResultSet rs = req.executeQuery("SELECT * FROM staff");
           
            while(rs.next()){
               
                System.out.println(rs.getString(3));
            }
           
        }
    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:

    Code (Java):
    import java.sql.*;

    public class DatabaseConnect {

        Connection connection;

        public void DatabaseConnect(){
               
        }
       
       
        public Connection connectToMysql(String host, String database, String user, String pwd){
                   
            try{
                Class.forName("com.mysql.jdbc.Driver").newInstance();
           
                String connectionCommand = "jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+pwd;
               
                connection = DriverManager.getConnection(connectionCommand);
               
           
            return connection;
            }
           

           
            catch (Exception ex){
               
                System.out.println("false");
               
            }
    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
     
    Zuletzt bearbeitet: 11. Apr. 2012
  2. eRaaaa

    eRaaaa Moderator

    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 :D)

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

    Wirbelwind Neues Mitglied

    Super, das hat funktioniert.

    Habe den Code jetzt umstrukturiert. Das war die Lösung!!!
     
Die Seite wird geladen...