Connection Variable in anderer Klasse verwenden -> statement

Status
Nicht offen für weitere Antworten.

avo

Mitglied
Hallo zusammen,

ich habe meine Connection Methode in einer anderen Klasse ausgelagert:

[Java] public static void connect(){

System.out.println("loading database...");

try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException cnfe){
System.out.println("Can't load driver: "+cnfe.getMessage());
}

try {
conn = DriverManager.getConnection(URL, USER, PASS);
System.out.println("successful!");
System.out.println("");


}
catch (Exception e) {
System.err.println("connection failed!");
}
}[/code]

und benötige die conn Variable in einer anderen Klasse für das Statement Objekt, um mit der Datenbank arbeiten zu können.
Gibt es eine Möglichkeit die conn Variable zu übergeben? Ich bekomme das nicht hin...

folgender Code soll in einer anderen Klasse ausgeführt werden:

[Java] DB_Connect.connect();

String stringCreate = "CREATE TABLE movie (ID INTEGER PRIMARY KEY,"+
"org_Title VARCHAR(30),"+
"ger_Title VARCHAR(30),"+
"year INTEGER,"+
"oscars INTEGER,"+
"ID_Regisseur INTEGER)";


try {
Statement stmtCreate = conn.createStatement();
int rowCount = stmtCreate.executeUpdate(stringCreate);
System.out.println(rowCount);
}
catch (SQLException e) {
e.printStackTrace();
}


DB_Connect.disconnect();[/Java]


Vielen Dank fürs lesen...

avo
 
Evtl geht es ja so:
Java:
public class Database {
  private String url;
  private String user;
  private String password;
  public Database(String url, String user, String password) {
    Class.forName("com.mysql.jdbc.Driver");
    this.url = url;
    this.user = user;
    this.password = password;
  }

  public Connection getConnection() {
    return DriverManager.getConnection(url, user, password);
  }
}

Dann kannst du die Klasse so benutzen.
Java:
Database db = new Database("blub", "user", "pw");
Connection con = db.getConnection();
String sql = "CREATE TABLE movie (ID INTEGER PRIMARY KEY,"+
                                                    "org_Title VARCHAR(30),"+
                                                    "ger_Title VARCHAR(30),"+
                                                    "year INTEGER,"+
                                                    "oscars INTEGER,"+
                                                    "ID_Regisseur INTEGER)";
  try {
    Statement stmtCreate = con.createStatement();
    int rowCount = stmtCreate.executeUpdate(sql);
    System.out.println(rowCount);
  } catch (SQLException e) {
    e.printStackTrace();
  }
 
oh man.. natürlich...

Vielen Dank für die schnelle Antwort =)

Das ganze noch in einen try/catch und alles funktioniert.


[Java] public static Connection getConData(){
try{
return DriverManager.getConnection(URL, USER, PASS);
}
catch (SQLException e) {
e.printStackTrace();
}
return null;
}[/Java]


Nochmal vielen Dank =)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben