DB Connection übergeben

ToniT

Grünschnabel
Hallo zusammen,

ich habe eine kleine Frage, ich möchte eine DBConnection von einem an eine anderen View "übergeben". Beim ersten öffnen einer View möchte ich überprüfen ob eine DB Connection besteht. Wenn nein möchte ich einen "Login" Dialog öffnen. OK. Wenn dann einmal das Login erfolgt ist und die DB Connection ist aufgebaut sollen alle weiteren Views die Connection übernehmen.
Wie kann ich das "übergeben" am einfachsten bewerkstelligen

Danke für Eure Hilfe !

Gruß Chris
 
Übergebe deinem 2. View(weinst du JFrame?) die Connection doch wenn du
Java:
new LogInWindow(deineConnectionHier)
//Deklaration von LogInWindow:
class LogInWindow{
public void LogInWindow(Connection/*<Da kommt derTyp hin*/ con){
try{//Der kram hier könnte vielleicht Explodieren(z.b. ein Query)
doStuff(con);
doSomeMoreStuff(con);
crazy(con);
}catch(Exception ex){ex.printStackTrace();}//Stactrace ausgeben
}
}
und in der deklaration vom LogInWindow Das mit Typenangabe schreiben.
 
Zuletzt bearbeitet von einem Moderator:
Hallo und Danke an ts230,

leider bin ich auf der suche nach etwas anderem vieleicht habe ich mich shlecht ausgedrückt und versuch es noch einmal.

Eine Klasse die mir das Handling der Datenbank abnimmt habe ich bereits erstellt. Diese öffnet beim aufrufen einen Dialog und erfragt User und PW und gibt mir dann eine Connection zurück.
Meine Anwendung (Eclipse RCP Plugin) öffnet beim start eine View diese ruft dann meine DB Klasse auf und fragt, wie beschrieben, mit einem Dialog User und PW ab. Rückgabe ist die DB Connection.
Jetzt hat der User die Möglichkeit eine beliebige Anzahl dieser Views zu öffnen (MultiView) soll aber bei weiteren Views nicht mehr nach User/PW gefragt werden, sondern auf die bereits vorhandene DB Connection / DB Objekt zugreifen.

Vieleicht ist mein Ansatz ja auch vollkommen falsch, aber wie wirds gemacht bzw. richtig gemacht

Danke und Gruß

Chris
 
Eine möglichkeit wäre laut der Beschreibung deine DBCOnnection Klasse als Singleton zu implementieren, d.h. es gibt in der Applikation nur eine einzige Instanz der DBConnection Klasse

Singleton:
Code:
public class DBConnection
{
 private DBConnection instance = null;

 // private Konstruktor
 private DBConnection()
 { 
  oeffneLoginDialog();
  initialisiereVerbindung();
 }
 
 // Methode zum Holen der Instanz
 public DBConnection getInstance()
 {
  if(instance==null)
  {
   instance = new DBConnection();
  }

  return instance;
 }

  // weitere Methoden etc.
}

...somit würden dann alle deine Views auf diese eine Instanz der Verbindung zugreifen. Wenn schon eine Verbindung besteht so wird diese zurückgeliefert, anderenfalls wird der Konstruktor zum Verbindungsaufbau gerufen.

Gruß
sony2

p.s. der Code is nicht getestet!!
 

Neue Beiträge

Zurück