connection übergeben

Status
Nicht offen für weitere Antworten.
M

Marco_adv

Gast
Hallo ich habe datenbank zugriffe und eine connect klasse geschrieben connect sieht wie folgt aus:

Code:
public class DatabaseConnection {

	private Connection connection = null;

	public DatabaseConnection(String driver, String url, String user, String password) throws SQLException, ClassNotFoundException {
		openConnection(driver, url, user, password);
	}

	/**
	 * Disconnect from the SCM database.
	 * @throws SQLException
	 */
	public void disconnect() throws SQLException {
		closeConnection();
	}

	private void openConnection(String driver, String jdbcURL, String user, String password) throws SQLException, ClassNotFoundException {
    	if(connection != null) {
    		closeConnection();
    	}
    	Class.forName(driver);
    	connection = DriverManager.getConnection(jdbcURL, user, password);
    	connection.setAutoCommit(false);
    }

    private void closeConnection() throws SQLException {
    	if(connection != null) {
    		connection.rollback();
    		connection.close();
    	}
    }
}

die statments so:
Code:
public class V3CRPRUSStatements {


	Connection connection = null;

	private PreparedStatement userInsert = null;

	private PreparedStatement userDelete = null;

	private PreparedStatement userupdate = null;

	private PreparedStatement getLastName = null;

	private PreparedStatement getFirstName = null;

	private PreparedStatement getEmailAdress = null;


	public V3CRPRUSStatements() {

	}

	public void deleteUser(UserDescription user) throws SQLException {
		if (userDelete == null) {
			userDelete = connection
					.prepareStatement("delete from v3crprus where "
							+ "USER_ID=?");
		}
		userDelete.setString(1, user.getUserId());
		userDelete.executeUpdate();
	}

	public void insertUser(UserDescription user) throws SQLException {
		if (userInsert == null) {
			userInsert = connection.prepareStatement("insert into v3crprus("
					+ "USER_ID, LAST_NAME, FIRST_NAME, EMAIL_ADDRESS"
					+ ") values( ?, ?, ?, ?) ");
		}
		userInsert.setString(1, user.getUserId());
		userInsert.setString(2, user.getLastName());
		userInsert.setString(3, user.getFirstName());
		userInsert.setString(4, user.getEMailAdress());
		userInsert.executeUpdate();
	}

	public void updateUser(UserDescription user) throws SQLException {
		if (userupdate == null) {
			userupdate = connection
					.prepareStatement("update v3crprus set LAST_NAME=?, FIRST_NAME=?, EMAIL_ADDRESS=?"
							+ "where USER_ID=?");

		}
		userupdate.setString(4, user.getUserId());
		userupdate.setString(1, user.getLastName());
		userupdate.setString(2, user.getFirstName());
		userupdate.setString(3, user.getEMailAdress());
		userupdate.executeUpdate();
	}

	public String getFirstName(String userId) throws SQLException {
		String returnValue = null;
		if (getFirstName == null) {
			getFirstName = connection
					.prepareStatement("select FIRST_NAME from v3crprus where USER_ID=?");
			getFirstName.setString(1, userId);
			ResultSet result = getFirstName.executeQuery();
			if (result != null) {
				if (result.next()) {
					returnValue = result.getString("FIRST_NAME");
				}
			}
		}
		return returnValue;
	}

	public String getEMailAdress(String userId) throws SQLException {
		String returnValue = null;
		if (getEmailAdress == null) {
			getEmailAdress = connection
					.prepareStatement("select EMAIL_ADDRESS from v3crprus where USER_ID=?");
			getEmailAdress.setString(1, userId);
			ResultSet result = getEmailAdress.executeQuery();
			if (result != null) {
				if (result.next()) {
					returnValue = result.getString("EMAIL_ADDRESS");
				}
			}
		}
		return returnValue;
	}

	public String getLastName(String userId) throws SQLException {
		String returnValue = null;
		if (getLastName == null) {
			getLastName = connection
					.prepareStatement("select LAST_NAME from v3crprus where USER_ID=?");
			getLastName.setString(1, userId);
			ResultSet result = getLastName.executeQuery();
			if (result != null) {
				if (result.next()) {
					returnValue = result.getString("LAST_NAME");
				}
			}
		}
		return returnValue;
	}

und nun möchte ich die connection irgendwie übergeben an die statments klasse dass die damit arbeiten kann.
kann mir da jemand helfen??

vielen dank marco
 

The_S

Top Contributor
Eine neue Instanz deiner Connection Klasse in der Statement klasse anlegen!? Bzw. über eine Methode eine bereits vorhandene Instanz deiner Connection Klasse übergeben. Oder hab ich da was falsch verstanden?
 

Azrahel

Bekanntes Mitglied
oder im Konstruktor
Code:
public V3CRPRUSStatements(Connection con) { 

   }
übergeben
 
M

Marco_adv

Gast
im constructor versuch ichs auch grad is nur dumm dass in der klasse database connection keine prepared statements sind also die connection nicht gecastet werden kann oder?
 
M

Marco_adv

Gast
also wenn ich das mache in der main:
Code:
DatabaseConnection connection = new DatabaseConnection("driver","URL", "user", "passwort");
V3CRPRUSStatements statements = new V3CRPRUSStatements(connection);
und der Constructor so aussieht
Code:
public V3CRPRUSStatements(Connection connection) {
}

dann übergebe ich ja keine SQL connection und kann die preparedStatements nicht aus führen oder wie meint ihr das?

danke schon mal für die vielen antworten zu früher stunde
 

Azrahel

Bekanntes Mitglied
Verzeichung, sollte in dem Fall selbstverständlich lauten
Code:
public V3CRPRUSStatements(DatabaseConnection connection) { 
}

oder DatabaseConnection müsste von Connectionabgeleitet werden... würd ja auch gehen
 
M

Marco_adv

Gast
ich versteh einfach nicht so ganz was ihr meint meine Connection classe connected ja nur und erbt nich nicht java.sql.connection
sorry das ich so langsam bin
 

The_S

Top Contributor
Deswegen soll dein Konstruktor ja auch ein Objekt der Klasse DatabaseConnection erwarten und nicht ein Connection objekt.
 

Azrahel

Bekanntes Mitglied
kein Problem.

Wenn du das machst:
Code:
public V3CRPRUSStatements(Connection con) { 

   }
darfst du nicht die DatabaseConnection übergeben sondern nur die Connection aus DatabaseConnection.

wenn du das machst:
Code:
public V3CRPRUSStatements(DatabaseConnection dbcon) { 

   }

musst du in V3CRPRUSStatements auf dbcon.getConnection():


zugreifen, also in der Klasse DatabaseConnection muss noch ein getter rein :
Code:
public Connection getConnection(){
return connection
}
 

Azrahel

Bekanntes Mitglied
Also so:
Code:
public class DatabaseConnection { 

   private Connection connection = null; 

   public DatabaseConnection(String driver, String url, String user, String password) throws SQLException, ClassNotFoundException { 
      openConnection(driver, url, user, password); 
   } 

   /** 
    * Disconnect from the SCM database. 
    * @throws SQLException 
    */ 
   public void disconnect() throws SQLException { 
      closeConnection(); 
   } 

   private void openConnection(String driver, String jdbcURL, String user, String password) throws SQLException, ClassNotFoundException { 
       if(connection != null) { 
          closeConnection(); 
       } 
       Class.forName(driver); 
       connection = DriverManager.getConnection(jdbcURL, user, password); 
       connection.setAutoCommit(false); 
    } 

    private void closeConnection() throws SQLException { 
       if(connection != null) { 
          connection.rollback(); 
          connection.close(); 
       } 
    } 
    public Connection getConnection(){
        return connection;
    }
}

und :
Code:
public class V3CRPRUSStatements { 


   Connection connection = null; 

   private PreparedStatement userInsert = null; 

   private PreparedStatement userDelete = null; 

   private PreparedStatement userupdate = null; 

   private PreparedStatement getLastName = null; 

   private PreparedStatement getFirstName = null; 

   private PreparedStatement getEmailAdress = null; 


   public V3CRPRUSStatements(DatabaseConnection cbcon) { 
        connection=dbcon.getConnection();
   } 

   public void deleteUser(UserDescription user) throws SQLException { 
      if (userDelete == null) { 
         userDelete = connection 
               .prepareStatement("delete from v3crprus where " 
                     + "USER_ID=?"); 
      } 
      userDelete.setString(1, user.getUserId()); 
      userDelete.executeUpdate(); 
   } 

   public void insertUser(UserDescription user) throws SQLException { 
      if (userInsert == null) { 
         userInsert = connection.prepareStatement("insert into v3crprus(" 
               + "USER_ID, LAST_NAME, FIRST_NAME, EMAIL_ADDRESS" 
               + ") values( ?, ?, ?, ?) "); 
      } 
      userInsert.setString(1, user.getUserId()); 
      userInsert.setString(2, user.getLastName()); 
      userInsert.setString(3, user.getFirstName()); 
      userInsert.setString(4, user.getEMailAdress()); 
      userInsert.executeUpdate(); 
   } 

   public void updateUser(UserDescription user) throws SQLException { 
      if (userupdate == null) { 
         userupdate = connection 
               .prepareStatement("update v3crprus set LAST_NAME=?, FIRST_NAME=?, EMAIL_ADDRESS=?" 
                     + "where USER_ID=?"); 

      } 
      userupdate.setString(4, user.getUserId()); 
      userupdate.setString(1, user.getLastName()); 
      userupdate.setString(2, user.getFirstName()); 
      userupdate.setString(3, user.getEMailAdress()); 
      userupdate.executeUpdate(); 
   } 

   public String getFirstName(String userId) throws SQLException { 
      String returnValue = null; 
      if (getFirstName == null) { 
         getFirstName = connection 
               .prepareStatement("select FIRST_NAME from v3crprus where USER_ID=?"); 
         getFirstName.setString(1, userId); 
         ResultSet result = getFirstName.executeQuery(); 
         if (result != null) { 
            if (result.next()) { 
               returnValue = result.getString("FIRST_NAME"); 
            } 
         } 
      } 
      return returnValue; 
   } 

   public String getEMailAdress(String userId) throws SQLException { 
      String returnValue = null; 
      if (getEmailAdress == null) { 
         getEmailAdress = connection 
               .prepareStatement("select EMAIL_ADDRESS from v3crprus where USER_ID=?"); 
         getEmailAdress.setString(1, userId); 
         ResultSet result = getEmailAdress.executeQuery(); 
         if (result != null) { 
            if (result.next()) { 
               returnValue = result.getString("EMAIL_ADDRESS"); 
            } 
         } 
      } 
      return returnValue; 
   } 

   public String getLastName(String userId) throws SQLException { 
      String returnValue = null; 
      if (getLastName == null) { 
         getLastName = connection 
               .prepareStatement("select LAST_NAME from v3crprus where USER_ID=?"); 
         getLastName.setString(1, userId); 
         ResultSet result = getLastName.executeQuery(); 
         if (result != null) { 
            if (result.next()) { 
               returnValue = result.getString("LAST_NAME"); 
            } 
         } 
      } 
      return returnValue; 
   }

Stimmt das so Hobbit?
 

Azrahel

Bekanntes Mitglied
weil du grad auch durchs Forum tobst und ebenfalls im Besitz der Macht bist :wink: Und da ich mir grad nicht sicher war weil wegen man hätte ja auch ach egal... Tschuldige....
 

The_S

Top Contributor
Du musst dich net entschuldigen, aber ich war ein bisschen überrascht von einem (imho) erfahrenen Java-Programmierer gefragt zu werden, ob das so stimmt :shock:
 

Azrahel

Bekanntes Mitglied
Das bekomm ich von dir gesagt? :shock: wenn ich manchmal sehe was du so schreibst bekomm ich ganz stark das Bedürfniss mich mit nem Duzend Java-Bücher im Keller einzusperren und zu büffeln ...
 

DaKo

Bekanntes Mitglied
Das bekomm ich von dir gesagt? icon_eek.gif wenn ich manchmal sehe was du so schreibst bekomm ich ganz stark das Bedürfniss mich mit nem Duzend Java-Bücher im Keller einzusperren und zu büffeln ...

Das Gefühl kenn ich :)
 

Azrahel

Bekanntes Mitglied
Der Andre Uhres ist da auch so ein Kandidat, der hat scheinbar ne Hirn-Speicher-Erweiterung die direkt mit der Api verknüpft ist ...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
su42 Logout, Cut connection Allgemeine Java-Themen 1
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
berserkerdq2 SceneBuilder GUI erstellt, nun muss ich noch ein Polygon erstellen, ist die Connection möglich? Allgemeine Java-Themen 3
S MSSQL Exception & Connection String Allgemeine Java-Themen 19
OnDemand FTP Connection Allgemeine Java-Themen 2
C Connection timed out mit "MediaWikiBot" Allgemeine Java-Themen 0
S WebApp MySQL Connection Loss Allgemeine Java-Themen 10
J XmlBeanFactory connection refused Allgemeine Java-Themen 5
T HTTP Proxy bei URL Connection Allgemeine Java-Themen 6
E NoClassDefFoundError: javax/microedition/io/Connection Allgemeine Java-Themen 2
S brauche Hilfe für ssh connection in java Allgemeine Java-Themen 6
G SVN Connection problem Allgemeine Java-Themen 10
F java.net.ConnectException: Connection timed out Allgemeine Java-Themen 13
P Ethernet connection Allgemeine Java-Themen 3
G httpUnit: Connection timed out Allgemeine Java-Themen 2
G DB connection in anderen Klassen nutzen! Allgemeine Java-Themen 7
M aus java.sql.Connection datenbankname auslesen Allgemeine Java-Themen 3
G Connection conn in andere Klasse / Objekt weitergeben? Allgemeine Java-Themen 17
S HTTP Connection über einen Proxy Allgemeine Java-Themen 2
Maxi-JOO Klassen Dummy Objekt in anderen Constructor übergeben Allgemeine Java-Themen 5
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
O Arrays an DOCX-Stamper Library übergeben Allgemeine Java-Themen 1
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
1 Klassen Variabel aus Schleife übergeben Allgemeine Java-Themen 8
T Wert an laufenden Java-Prozess übergeben Allgemeine Java-Themen 10
Neumi5694 Methoden Generic: Rückgabetyp als Class-Parameter übergeben Allgemeine Java-Themen 3
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
H Consumer (Java8 Lambda) an Timer übergeben Allgemeine Java-Themen 2
R Abstrakte Basisklasse und instanzierte Objekte der abgeleiteten Klasse als Basisklasse übergeben Allgemeine Java-Themen 2
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
T C DLL einbinden und Pointer übergeben Allgemeine Java-Themen 13
S Klassen übergeben Allgemeine Java-Themen 13
X Komponente an Methode übergeben Allgemeine Java-Themen 1
F JFrame übergeben Allgemeine Java-Themen 5
F Classpath als Argument in Funktion übergeben Allgemeine Java-Themen 3
D Arraylist eigener Klasse an iReport übergeben Allgemeine Java-Themen 7
I JFrame Icon in Main übergeben Allgemeine Java-Themen 1
V int Array einer return Methode übergeben? Allgemeine Java-Themen 4
D Vererbung Wie auf Subklasse zugreifen + übergeben? Allgemeine Java-Themen 5
F Variable übergeben?! Allgemeine Java-Themen 2
J Verbindungsdaten an Subklasse übergeben? Allgemeine Java-Themen 5
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
L nach form submit textfeld an java übergeben? Allgemeine Java-Themen 2
Joew0815 JList + JTableModel: Parameter der Tabelle übergeben Allgemeine Java-Themen 10
M Probleme mit String in Label übergeben. Allgemeine Java-Themen 6
M JExcel Wert aus Zelle übergeben/ausgeben Allgemeine Java-Themen 2
M Arraynamen an andere Klasse übergeben für allg. Rechnung Allgemeine Java-Themen 7
C char und char-Array als parameter übergeben Allgemeine Java-Themen 6
C Reflektions, Benutzer soll Konstruktor auswählen und Parameter übergeben können Allgemeine Java-Themen 5
V StyledDocument mit Writer übergeben Allgemeine Java-Themen 8
S JDialog Daten ins JFrame übergeben Allgemeine Java-Themen 5
C Argument an einen Thread übergeben Allgemeine Java-Themen 4
L Apache CLI: Args[] übergeben Allgemeine Java-Themen 3
E Array im Konstruktor übergeben Allgemeine Java-Themen 3
GianaSisters ArrayList in Methoden übergeben Allgemeine Java-Themen 3
GianaSisters ArrayList übergeben funktioniert nicht Allgemeine Java-Themen 4
W ScriptEngine + Wie Parameter übergeben bei Fukntion? Allgemeine Java-Themen 2
N Datenstrukturen an neue Klasse übergeben Allgemeine Java-Themen 16
S String in eine andere Klasse übergeben Allgemeine Java-Themen 25
Jay_030 Guice: Injector übergeben? Allgemeine Java-Themen 3
DStrohma String an URI übergeben der ? = & enthällt Allgemeine Java-Themen 13
B Daten an Tabel Model übergeben Allgemeine Java-Themen 8
A Array übergeben/abrufen Allgemeine Java-Themen 4
J Parameter an Java übergeben Allgemeine Java-Themen 10
H root-Passwort übergeben Allgemeine Java-Themen 28
A Variable Parameterinhalte an einen Query übergeben? Allgemeine Java-Themen 3
A wie kann man Parameter an ein Task übergeben? Allgemeine Java-Themen 3
M Variablen an Java-Programm übergeben Allgemeine Java-Themen 3
X Methode: ArrayList byRef übergeben Allgemeine Java-Themen 22
S Objekt übergeben ??? Allgemeine Java-Themen 4
J Collections in Instanzattributen als Kopie übergeben Allgemeine Java-Themen 4
T UserID übergeben Allgemeine Java-Themen 8
W Properties-Klasse: mehrere Parameter-Belegungen übergeben? Allgemeine Java-Themen 2
V Wie Enum an Funktion "übergeben" ? Allgemeine Java-Themen 4
0 Stream/Datei an VLC übergeben und abspielen Allgemeine Java-Themen 10
G Linked List zwischen zwei Threds übergeben Allgemeine Java-Themen 11
N Wie einem Thread ein Objekt übergeben Allgemeine Java-Themen 9
S .rar-Dateien ein Passwort als Parameter übergeben Allgemeine Java-Themen 5
B Referezen auf Objekte an Methoden übergeben Allgemeine Java-Themen 2
O Kommandozeilenparameter mit Eclipse übergeben Allgemeine Java-Themen 5
M variable übergeben NICHT KOPIEREN Allgemeine Java-Themen 12
M Parameter an main übergeben aber wie? Allgemeine Java-Themen 4
T Parameter an Thread übergeben Allgemeine Java-Themen 8
T Files an das Betriebsystem übergeben such ideen! Allgemeine Java-Themen 3
B Array von Vektoren by reference übergeben Allgemeine Java-Themen 5
E methodenname übergeben Allgemeine Java-Themen 8
B wird Vektor als Referenz übergeben? Allgemeine Java-Themen 5
J Interface als Parameter übergeben Allgemeine Java-Themen 4
R Eine Variable an eine Methode mit Array übergeben Allgemeine Java-Themen 7
C String korrekt übergeben Allgemeine Java-Themen 8
M richtiges Ergebnis zählen und übergeben? Allgemeine Java-Themen 7
E markierten text im windowsprogramm an javaprog. übergeben? Allgemeine Java-Themen 9
H JSF - Wert an ein managed bean übergeben Allgemeine Java-Themen 2
J Array an paint übergeben Allgemeine Java-Themen 6
F array als referenz/werteparameter übergeben? Allgemeine Java-Themen 2
N Wie parameter von java aus an anderes Programm übergeben? Allgemeine Java-Themen 7
B jar per doppelklick auf datei parameter übergeben Allgemeine Java-Themen 5
O String übergeben ist name eines JTextField wie zugreifen Allgemeine Java-Themen 9
S Daten in andere Klasse übergeben Allgemeine Java-Themen 5
M Datenbankinhalt an StringArray übergeben Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben