2016-07-19 20 views
0

Ich möchte zu einer SQLite-Datenbank verbindenin Java eine SQLite-Verbindung in einer statischen Methode erstellen

Hier ist mein Code für die Connect-Klasse eine statische Methode in Java zu abstrakt erstellen:

public class Connect { 

    public static Connection Connect(String connection, Boolean create) throws ClassNotFoundException, SQLException, FileNotFoundException { 

     Connection conn = null; 

     try { 

      Class.forName("org.sqlite.JDBC"); 

      if(create == false){ 

       try { 

        FileInputStream f = new FileInputStream(connection); 
        conn = DriverManager.getConnection("jdbc:sqlite:"+connection); 

       } catch(Exception NoDB) { 
        throw NoDB; 
       } 


      } else { 

       conn = DriverManager.getConnection("jdbc:sqlite:"+connection); 

      } 

      return conn; 

     } catch(Exception e){ 

      if(conn != null){ 

       conn.close(); 

      } 

      throw e; 

     } 

    } 
} 

I wollen die Connect-Klasse aufrufen können, wie diese

Connection conn = Connect(); 

ich IntelliJ und die IDE Hält was darauf hindeutet, diesen Code zu

bin mit
(Connection) conn = new Connect(); 

Ich machte die Methoden statisch und ich importiere die Klasse. Was mache ich falsch, wie man den Code auf diese Weise funktioniert? Ich gebe eine Typverbindung von der statischen Methode zurück.

Antwort

1

Wenn Sie eine static Methode zur Erfassung der Verbindung erstellen, dann sollten Sie nicht eine Instanz der Utility-Klasse (mit dem new Operator) in erster Linie erschaffen.

Auf statische Methoden wird über den Klassennamen zugegriffen, verwenden Sie stattdessen Connection conn = Connect.Connect(...). Beachten Sie, dass Methodennamen gemäß den Java-Konventionen mit einem Kleinbuchstaben beginnen sollten.

+0

Also muss ich den Namespace verwenden oder ich denke in Java ist es der "Klassenname" der Klasse dann. Kann ich diese statische Connect() -Methode als globale Funktion erstellen? – Jesse

+1

In Java gibt es keine globalen Funktionen. Sie müssen die Klassen einzeln importieren. Statische Elemente können auch importiert werden, um einige Standardwerte zu speichern, z. 'import static com.mypackage.Connect.connect;' danach müssen Sie den Klassennamen nicht angeben, um diese Methode in der importierenden Klasse aufzurufen. –

+0

Dank Ich wusste nicht, dass Sie statische Importe tun können, ich bin Coldfusion-Programmierer und ich begann mit C# Ich lerne Java, so dass ich es in Verbindung mit Coldfusion verwenden kann. C# hat in Version 6 nur statische Importe hinzugefügt. Wie lange ist Java dazu in der Lage? – Jesse

Verwandte Themen