Connection conn in andere Klasse / Objekt weitergeben?

Status
Nicht offen für weitere Antworten.

ghost

Bekanntes Mitglied
Ich will das conn weitergeben ( für ResultSet und Close.conn ), aber irgendwie funzt es nicht?!?!

Code:
package graphics;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.net.*;
import work.*;

public class Befehl extends JFrame{
		private static JTextArea ausgabe = new JTextArea();
		    private JTextField eins = new JTextField();
			//private JTextField zwei = new JTextField();
			//private JTextField drei = new JTextField();
			public static void Tex(String text){
					Befehl.ausgabe.append("\n"+text);}
			
	
	public Befehl(){
		super("Befehlseingabe");
		
		JPanel pan = new JPanel();
		pan.setLayout(new GridBagLayout());
		pan.setBackground(Color.white);
		
		JLabel lab = new JLabel();
		lab.setOpaque(true);
		lab.setBackground(Color.blue);
		lab.setForeground(Color.red);
		lab.setFont(new Font("Helvetica", Font.BOLD, 24));
		lab.setText("Auswahl");
		pan.add(lab, new GridBagConstraints(0,0,1,1,0.0,0.5,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0), 1, 1));
			
		JLabel lab2 = new JLabel();
		lab2.setOpaque(true);
		lab2.setBackground(Color.blue);
		lab2.setForeground(Color.black);
		lab2.setFont(new Font("Helvetica", Font.PLAIN, 21));
		lab2.setText("Bitte wählen Sie aus dem Menü den entsprechenden Programmpunkt");
		pan.add(lab2, new GridBagConstraints(0,1,1,0,0.0,0.5,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
		
		JPanel pan2 = new JPanel();
		pan2.setLayout(new GridBagLayout());
		pan2.setBackground(Color.blue);
		
			/*JLabel lab3 = new JLabel();
			lab3.setOpaque(true);
			lab3.setFont(new Font("Helvetica", Font.PLAIN, 18));
			//lab3.setText("Update-, Insert-, Delete-Befehle: ");
			pan2.add(lab3, new GridBagConstraints(0,1,1,1,0.0,0.5,
				GridBagConstraints.CENTER,GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));*/
				
			JButton b1 = new JButton();
			b1.setText("Abfrage");
			b1.setBackground(Color.green);
			b1.addActionListener(AL2);
			pan2.add(b1, new GridBagConstraints(0,0,1,1,1.0,1.0,
			GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
				
			eins.setFont(new Font("Helvetica", Font.BOLD, 18));
			String tfeins = eins.getText();
			pan2.add(eins, new GridBagConstraints(1,0,1,1,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
					
		JPanel pan3 = new JPanel();
		pan3.setLayout(new GridBagLayout());
		ausgabe.setFont(new Font("Helvetica", Font.BOLD, 12));
			JScrollPane scroll = new JScrollPane(ausgabe);
			pan3.add(scroll, new GridBagConstraints(0,0,1,1,1.0,1.0,
				GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		
					
		this.getContentPane().setLayout(new GridBagLayout());
			this.getContentPane().add(pan, new GridBagConstraints(0,0,1,1,1.0,1.0, 
				GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			this.getContentPane().add(pan2, new GridBagConstraints(0,1,1,1,1.0,1.0,
				GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			this.getContentPane().add(pan3, new GridBagConstraints(0,2,1,1,1.0,1.0,
				GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
	}
			ActionListener AL2 = new ActionListener(){
			public void actionPerformed(ActionEvent e){
			Abfrage V = new Abfrage(eins.getText(), Connection conn)));}};
				}

public class Abfrage{
		
		public Abfrage(String tfeins, Connection conn){
			
			Statement stmt = null;
			ResultSet res = null;
			
			Connn.Text("Verarbeitung beginnt");
			
			try{
				stmt = conn.createStatement();
			}
			catch(SQLException e){
				Befehl.Tex("Fehler beim Ausführen der Abrage"+e);
			};
			
			try{
				if ( stmt.execute(tfeins)){
					res = stmt.getResultSet();
					//show_result(res);
					res.close();
				}
				else{
					graphics.Befehl.Tex("Abfrage ausgeführt");
					graphics.Befehl.Tex("\r\nAnzahl Datensätze: "+ stmt.getUpdateCount());
				}
}
				catch (SQLException e){
					Befehl.Tex("Fehler beim Ausführen der Abfrage: "+ e);
				}
				try{
					stmt.cancel();
					stmt.close();
				}
				catch (SQLException e){
					graphics.Befehl.Tex("Fehler beim Ausführen der Abfrage" +e);
				}
			
		
}
}


ActionListener CL = new ActionListener(){
			public void actionPerformed(ActionEvent e){
				//conn.close();
				meld.append("\n" + "Verbindung beendet");
 

thE_29

Top Contributor
Code:
public void actionPerformed(ActionEvent e){
         Abfrage V = new Abfrage(eins.getText(), Connection conn)));}};
            }

Wie gehtn das bitte???

Das lässt sich compilieren?

Du brauchst ein Connection con Object und dann übergibst du nur noch con mit und nicht Connection con!
 

ghost

Bekanntes Mitglied
Ich hab mich wohl etwas ungenau ausgedrückt, Sorry :oops:

Ich bau in Verbindung ne mit JDBC ne Verbindung auf ( Connection conn ). Diese Verbindung möchte ich aber in anderen Klassen weiterverwenden ( p.s.: der Verbindungsaufbau funktioniert ). Meine Frage ist nun, wie muß ich das machen? Der obrige Code-Teil ist ein Versuch. Weder dieser noch andere haben bisher funktioniert ( nicht Compiliert worden ), deshalb meine Frage hier im Board...
 

Sky

Top Contributor
Was the_29 wohl sagen wollte: versuch's mal so:

Code:
ActionListener AL2 = new ActionListener(){ 
         public void actionPerformed(ActionEvent e){ 
         Abfrage V = new Abfrage(eins.getText(), conn)));}}; 
            }

==> "Connection conn" durch "conn" ersetzt.
 

thE_29

Top Contributor
Das andere lässt sich einfach net Compilieren ;>

Dann muss man nur noch logisch denken und er hat ja andere Funktionen auch, omg...
 

ghost

Bekanntes Mitglied
Ich habs jetzt mal versucht, aber es funktioniert nicht. Ich ( unwissender Thomas :oops: ) nehm mal an, das es daran liegt, wie ich conn erstell ( über Klasse Verbindung aufruf über ActionListener ). Unten hab ich jetzt mal ne (minimal ) andere Version des Progs gepostet. Vielleicht könnt ihr ( :meld: :applaus: ) mir ja sagen wie ich vorgehen muß um das conn - Objekt vom Listener aus weiterverwenden zu können. THANKS

Code:
package graphics;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.sql.*;

public class Komplett extends JFrame{
	private JTextField tfname = new JTextField();
	private JPasswordField tfpw = new JPasswordField();
	private JTextField tfdb = new JTextField();
	private JTextField tfhost = new JTextField();
	private static JTextArea aus = new JTextArea();
	
		public static void Text(String text){
					Komplett.aus.append("\n"+text);
				}
	
	public Komplett(){
	    super("MySQL - Schnittstelle");
	    
	    JPanel pan = new JPanel();
	    pan.setLayout(new GridBagLayout());
	    pan.setBackground(Color.white);
				
		JLabel lab = new JLabel();
		lab.setOpaque(true);
		lab.setBackground(Color.blue);
		lab.setForeground(Color.red);
		lab.setFont(new Font("Helvetica", Font.PLAIN, 10));
		lab.setText("Benutzername: ");
		pan.add(lab, new GridBagConstraints(0,0,1,1,0.0,0.5,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0), 1, 1));

		
		JLabel lab2 = new JLabel();
		lab2.setOpaque(true);
		lab2.setBackground(Color.blue);
		lab2.setForeground(Color.black);
		lab2.setFont(new Font("Helvetica", Font.PLAIN, 10));
		lab2.setText("Passwort: ");
		pan.add(lab2, new GridBagConstraints(0,1,1,0,0.0,0.5,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		JLabel lab3 = new JLabel();
		lab3.setOpaque(true);
		lab3.setFont(new Font("Helvetica", Font.PLAIN,10));
		lab3.setText("Host: ");
		pan.add(lab3, new GridBagConstraints(0,2,1,0,0.0,0.5,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		JLabel lab4 = new JLabel();
		lab4.setOpaque(true);
		lab4.setFont(new Font("Helvetica", Font.PLAIN, 10));
		lab4.setText("Datenbank: ");
		pan.add(lab4, new GridBagConstraints(0,3,1,0,0.0,0.5,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		JLabel lab5 = new JLabel();
		lab5.setOpaque(true);
		lab5.setFont(new Font("Helvetica", Font.PLAIN, 10));
		lab5.setText("Abfrage: ");
		pan.add(lab5, new GridBagConstraints(0,4,1,0,0.0,0.5,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
		
		//JTextField tfname = new JTextField();
		tfname.setFont(new Font("Helvetica", Font.PLAIN,10));
		String user = tfname.getText();
		pan.add(tfname, new GridBagConstraints(1,0,0,0,0.0,0.5,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		//JTextField tfpw = new JTextField();
		tfpw.setFont(new Font("Helvetica", Font.PLAIN,10));
		String pw = tfpw.getText();
		pan.add(tfpw, new GridBagConstraints(1,1,0,0,0.0,0.5,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		//JTextField tfhost = new JTextField();
		tfhost.setFont(new Font("Helvetica", Font.PLAIN,10));
		String host = tfhost.getText();
		pan.add(tfhost, new GridBagConstraints(1,2,0,0,0.0,0.5,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		//JTextField tfdb = new JTextField();
		tfdb.setFont(new Font("Helvetica", Font.PLAIN,10));
		String db = tfdb.getText();
		pan.add(tfdb, new GridBagConstraints(1,3,0,0,0.0,0.5,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		JButton but = new JButton();
		but.setText("Verbinden");
		but.setBackground(Color.green);
		but.addActionListener(AL);
		pan.add(but, new GridBagConstraints(0,4,1,1,1.0,1.0,
			GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		JPanel pan2= new JPanel();
		pan2.setLayout(new GridBagLayout());
		
		JTextArea aus = new JTextArea();
		aus.setFont(new Font("Helvetica", Font.PLAIN, 10));
		JScrollPane scroll = new JScrollPane(aus);
		pan2.add(scroll, new GridBagConstraints(0,0,1,1,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
				
		JTextArea ein = new JTextArea();
		ein.setFont(new Font("Helvetica", Font.PLAIN,10));
		pan2.add(scroll, new GridBagConstraints(0,1,1,1,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		JButton but2 = new JButton();
		but2.setText("Ausführen");
		but2.setBackground(Color.green);
		but2.addActionListener(AL2);
		pan2.add(but2, new GridBagConstraints(0,2,1,1,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		this.getContentPane().setLayout(new GridBagLayout());
			this.getContentPane().add(pan, new GridBagConstraints(0,0,1,1,1.0,1.0, 
				GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			this.getContentPane().add(pan2, new GridBagConstraints(1,0,1,1,1.0,1.0,
				GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
				
		}
			
		ActionListener AL = new ActionListener(){
			public void actionPerformed(ActionEvent e){
				Verbindung V = new Verbindung(tfname.getText(), tfpw.getText(), tfhost.getText(), tfdb.getText());}};
			/*	Connection conn =  null;
		 		Komplett.aus.append("Button gedrückt");
				try{
				Komplett.aus.append("Treiber wird geladen");
					Class.forName("com.mysql.jdbc.Driver");//.newInstance();
					Komplett.aus.append("org.gjt.mm.mysql.Driver");
				    Komplett.aus.append("Treiber wird geladen");
				}
				catch(ClassNotFoundException cnfs){
					Komplett.aus.append("Class not Found");
				}
		try{
			 
			  String connstr = "jdbc:mysql://" + host + "/" + db;
			  Connn.Text(connstr);
			 conn = DriverManager.getConnection(connstr, user, pw);
			 
			 Komplett.aus.append("Verbindungsaufbau");}
				catch(SQLException sqle){
					Komplett.aus.append("Verbindung fehlgeschlagen: " + sqle.getMessage());*/
			
		    
		    
		ActionListener AL2 = new ActionListener(){
			public void actionPerformed(ActionEvent e){
			}
};
		}

Code:
package graphics;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.sql.*;

public class Verbindung {
		
		public Verbindung(String user, String password, String dbhost, String dbname){
		
Connection conn =  null;
		
			Connn.Text("Button gedrückt");
				try{
				Connn.Text("Treiber wird geladen");
					Class.forName("com.mysql.jdbc.Driver");//.newInstance();
					Connn.Text("org.gjt.mm.mysql.Driver");
				    Connn.Text("Treiber wird geladen");
				}
				catch(ClassNotFoundException cnfs){
				Connn.Text("Class not Found");
				}
		try{
			 
			  String connstr = "jdbc:mysql://" + dbhost + "/" + dbname;
			  Connn.Text(connstr);
			 conn = DriverManager.getConnection(connstr, user, password);
			 
			 /*String connstr = "jdbc:mysql://" + tfhost.getText() + "/" + tfdbname.getText();
			 meld.append("\n" + connstr);
			 conn = DriverManager.getConnection(connstr, tfuser.getText(),tfpass.getText());*/
 			//conn = DriverManager.getConnection("jdbc:mysql://"+ tfhost.getText() + ":"+ tfdbname.getText(), tfuser.getText(), tfpass.getText());
			 Connn.Text("Verbindungsaufbau");}
				catch(SQLException sqle){
					Connn.Text("Verbindung fehlgeschlagen: " + sqle.getMessage());
}

;}
					}
 

thE_29

Top Contributor
Für was machst du 2mal hintereinander conn = Driver....

bring NIX! außer das er sich einmal versucht so einzuloggen und einmal so!

Außerdem, was geht den überhaupt nicht??

poste exceptioni, wahrscheinlich loggst dich einfach nur falsch ein!
 

ghost

Bekanntes Mitglied
Also, das mit dem zweimal conn siehst du falsch ( :bae: ) der zweite Teil ist auskommentiert, sieht man blos nicht gescheit, da im Board der komplette Code grün ist. Mein Problem ist: Ich möchte ein Prog schreiben, bei dem ich mich per JDBC in eine MySQL - DB einlogge ( funzt auch ) und dann über diese bestehende Connection conn Abfragen ( select, insert, .... ) absetze. Mein Problem ist nun, das ich die Connection in der Klasse Verbindung aufbaue und nicht weiß :bahnhof: wie ich die conn in andere Klassen ( aus Verbindung raus zu Komplett oder anderer Klasse ) weiterleiten kann, um sie da weiterzunutzen.....
 
G

Gast

Gast
Mach sie doch public static, und dann mit Paket.Klasse.conn drauf zugreifen. Am besten aber mit einem Getter.

Falls das falsch ist entschuldige ich mich, bin auch Anfänger.
 
G

Gast

Gast
Ich jetzt mal versucht, die conn static zu machen, aber es hat bisher nicht funktioniert??
 

ghost

Bekanntes Mitglied
Ich hab jetzt die Connection ( Connection conn; ) am anfang von Komplett definiert. Wenn ich jedoch im ActionListener ( AL2 ) mit conn.close(); oder Verbindung.conn.close(); darauf zugreifen will, dann kommt beim kompilieren immer nur die Fehlermeldung "Cannot resolve Symbol"??? Was mach ich falsch?
 
G

Gast

Gast
Hier ist der Code:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.sql.*;

public class Komplett extends JFrame{
	private JTextField tfname = new JTextField();
	private JPasswordField tfpw = new JPasswordField();
	private JTextField tfdb = new JTextField();
	private JTextField tfhost = new JTextField();
	private static JTextArea aus = new JTextArea();
	private static JTextArea ein = new JTextArea();

	Connection conn;
	//Statement stmt = null;
	
		public static void Text(String text){
		Komplett.aus.append("\n"+text);
		}
	
	public Komplett(){
	    super("MySQL - Schnittstelle");
	    
	    JPanel pan = new JPanel();
	    pan.setLayout(new GridBagLayout());
	    //pan.setBackground(Color.white);
				
		JLabel lab = new JLabel();
		lab.setOpaque(true);
		//lab.setBackground(Color.blue);
		//lab.setForeground(Color.red);
		lab.setFont(new Font("Helvetica", Font.PLAIN, 14));
		lab.setText("Benutzername: ");
		pan.add(lab, new GridBagConstraints(0,0,1,1,0.4,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0), 1, 1));

		
		JLabel lab2 = new JLabel();
		lab2.setOpaque(true);
		//lab2.setBackground(Color.blue);
		//lab2.setForeground(Color.black);
		lab2.setFont(new Font("Helvetica", Font.PLAIN, 14));
		lab2.setText("Passwort: ");
		pan.add(lab2, new GridBagConstraints(0,1,1,1,0.4,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		JLabel lab3 = new JLabel();
		lab3.setOpaque(true);
		lab3.setFont(new Font("Helvetica", Font.PLAIN,14));
		lab3.setText("Host: ");
		pan.add(lab3, new GridBagConstraints(0,2,1,1,0.4,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		JLabel lab4 = new JLabel();
		lab4.setOpaque(true);
		lab4.setFont(new Font("Helvetica", Font.PLAIN, 14));
		lab4.setText("Datenbank: ");
		pan.add(lab4, new GridBagConstraints(0,3,1,1,0.4,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		JLabel lab5 = new JLabel();
		lab5.setOpaque(true);
		lab5.setFont(new Font("Helvetica", Font.BOLD, 16));
		lab5.setText("Abfrage: ");
		pan.add(lab5, new GridBagConstraints(1,5,1,1,1.0,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		//JTextField tfname = new JTextField();
		tfname.setFont(new Font("Helvetica", Font.PLAIN,14));
		String user = tfname.getText();
		pan.add(tfname, new GridBagConstraints(1,0,1,1,1.0,0.01,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		//JTextField tfpw = new JTextField();
		tfpw.setFont(new Font("Helvetica", Font.PLAIN,14));
		String pw = tfpw.getText();
		pan.add(tfpw, new GridBagConstraints(1,1,1,1,1.0,0.01,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		//JTextField tfhost = new JTextField();
		tfhost.setFont(new Font("Helvetica", Font.PLAIN,14));
		String host = tfhost.getText();
		pan.add(tfhost, new GridBagConstraints(1,2,1,1,1.0,0.01,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		//JTextField tfdb = new JTextField();
		tfdb.setFont(new Font("Helvetica", Font.PLAIN,14));
		String db = tfdb.getText();
		pan.add(tfdb, new GridBagConstraints(1,3,1,1,1.0,0.01,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		JButton but = new JButton();
		but.setText("Verbinden");
		but.setBackground(Color.green);
		but.addActionListener(AL);
		pan.add(but, new GridBagConstraints(0,4,2,1,1.0,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		JPanel pan2= new JPanel();
		pan2.setLayout(new GridBagLayout());
		
		//JTextArea aus = new JTextArea();
		aus.setFont(new Font("Helvetica", Font.PLAIN, 12));
		JScrollPane scroll = new JScrollPane(aus);
		pan2.add(scroll, new GridBagConstraints(0,0,3,4,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
				
		//JTextArea ein = new JTextArea();
		ein.setFont(new Font("Helvetica", Font.PLAIN,12));
		JScrollPane scroll2 = new JScrollPane(ein);
		pan2.add(scroll2, new GridBagConstraints(0,4,3,2,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		JButton but2 = new JButton();
		but2.setText("Ausführen");
		but2.setBackground(Color.green);
		but2.addActionListener(AL2);
		pan2.add(but2, new GridBagConstraints(0,8,3,1,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		this.getContentPane().setLayout(new GridBagLayout());
			this.getContentPane().add(pan, new GridBagConstraints(0,0,1,1,1.0,1.0, 
				GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			this.getContentPane().add(pan2, new GridBagConstraints(1,0,1,1,1.0,1.0,
				GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
				
		}
			
		ActionListener AL = new ActionListener(){
			public void actionPerformed(ActionEvent e){
				Verbindung V = new Verbindung(tfname.getText(), tfpw.getText(), tfhost.getText(), tfdb.getText() );
				}};
				/*Connection conn =  null;
		 		Komplett.aus.append("Button gedrückt");
				try{
				Komplett.aus.append("Treiber wird geladen");
					Class.forName("com.mysql.jdbc.Driver");//.newInstance();
					Komplett.aus.append("org.gjt.mm.mysql.Driver");
				    Komplett.aus.append("Treiber wird geladen");
				}
				catch(ClassNotFoundException cnfs){
					Komplett.aus.append("Class not Found");
				}
		try{
			 
			  String connstr = "jdbc:mysql://" + host + "/" + db;
			  Connn.Text(connstr);
			 conn = DriverManager.getConnection(connstr, user, pw);
			 
			 Komplett.aus.append("Verbindungsaufbau");}
				catch(SQLException sqle){
					Komplett.aus.append("Verbindung fehlgeschlagen: " + sqle.getMessage());
					
				
					};
					};*/
					
			
		    
		    
		ActionListener AL2 = new ActionListener(){
			public void actionPerformed(ActionEvent e){
			Text("Verbindung wird beendet");
			Verbindung.conn.close();
			}
			};
			
	
			}
 

thE_29

Top Contributor
Was isn Verbindung schon wieder??

Wenn dann musst du alles posten...

und ich schätz mal das Verbindung einfach keine Var namens conn haben wird, sondern die Klasse Komplett hat eine conn Variable...
 

ghost

Bekanntes Mitglied
Verbindung ist die Klasse in der ich die Verbindung zur DB aufbaue ( hab ich nicht nochmal gepostet, da ich dort nichts geändert hab / ich poste sie unten nochmal ). Connection ist eine Klasse im JDBC - Treiber ( soviel ich weiß :( ).
Das Prog sollte normal so laufen: Fensteraufbau - Eingabe der Daten - Verbindung zur DB - diverse Abfragen an die DB - Prog - Ende..

Code:
package graphics;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.sql.*;

public class Verbindung {
      
      public Verbindung(String user, String password, String dbhost, String dbname){
      
Connection conn =  null;
      
         Connn.Text("Button gedrückt");
            try{
            Connn.Text("Treiber wird geladen");
               Class.forName("com.mysql.jdbc.Driver");//.newInstance();
               Connn.Text("org.gjt.mm.mysql.Driver");
                Connn.Text("Treiber wird geladen");
            }
            catch(ClassNotFoundException cnfs){
            Connn.Text("Class not Found");
            }
      try{
         
           String connstr = "jdbc:mysql://" + dbhost + "/" + dbname;
           Connn.Text(connstr);
          conn = DriverManager.getConnection(connstr, user, password);
         
          /*String connstr = "jdbc:mysql://" + tfhost.getText() + "/" + tfdbname.getText();
          meld.append("\n" + connstr);
          conn = DriverManager.getConnection(connstr, tfuser.getText(),tfpass.getText());*/
         //conn = DriverManager.getConnection("jdbc:mysql://"+ tfhost.getText() + ":"+ tfdbname.getText(), tfuser.getText(), tfpass.getText());
          Connn.Text("Verbindungsaufbau");}
            catch(SQLException sqle){
               Connn.Text("Verbindung fehlgeschlagen: " + sqle.getMessage());
}

;}
               }
 

thE_29

Top Contributor
Sag ich ja!

Die Connection Variable in Verbindung ist keine Klassenvariable => ergo geht Verbindung.conn net!

Du musst sie als public static Connection con definieren!
 

ghost

Bekanntes Mitglied
Erstmal danke thE 29 für deine Engelsgeduld :D

Ich hab das Prog jetzt entsprechend geändert ( siehe unten ). Der Verbindungsaufbau und das Compilieren funktioniert einwandfrei. Aber immer wenn ich dann per Button die Verbindung beenden will ( AL2 ) oder eine Abfrage absetzen will ( AL3) krieg ich einen Error ( NullPointer ). Weißt du warum?

Thanks

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;



public class Main{
	public static void main (String [] args){
	
		ActionListener L1 = new ActionListener(){
		public void actionPerformed(ActionEvent e){
		//JFrame fenster = new Befehle();
		//fenster.setVisible(true);
		
		}
		};

	JFrame fenster = new Komplett();
	fenster.setSize(700,300);
	
	JMenuBar mbar = new JMenuBar();
	JMenu prog = new JMenu("Programm");
	mbar.add(prog);
	fenster.setJMenuBar(mbar);
	JMenuItem info = new JMenuItem("Info");
	prog.add(info);
	//info.addActionListener(Alinfo);
	JMenuItem end = new JMenuItem("Beenden");
	prog.add(end);
	//end.addActionListener(Alend);
	JMenu sql = new JMenu("MySQL");
	mbar.add(sql);
	JMenuItem befehl = new JMenuItem("Befehl");
	sql.add(befehl);
	befehl.addActionListener(L1);
	JMenu help = new JMenu("Hilfe");
	mbar.add(help);
	JMenuItem hilfe = new JMenuItem("Hilfe");
	help.add(hilfe);
	//hilfe.addActionListener(Alhilfe);
	
	
	WindowListener l = new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		};
	fenster.addWindowListener(l);
	//fenster.pack();
	fenster.setVisible(true);



}
}
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.sql.*;

public class Verbindung {
		
		public Verbindung(String user, String password, String dbhost, String dbname ){
		
   //conn =  null;
		
			Komplett.Text("Button gedrückt");
				try{
				Komplett.Text("Treiber wird geladen");
					Class.forName("com.mysql.jdbc.Driver");//.newInstance();
					Komplett.Text("org.gjt.mm.mysql.Driver");
				    Komplett.Text("Treiber wird geladen");
				}
				catch(ClassNotFoundException cnfs){
				Komplett.Text("Class not Found");
				}
		try{
			 
			  String connstr = "jdbc:mysql://" + dbhost + "/" + dbname;
			  Komplett.Text(connstr);
			 conn = DriverManager.getConnection(connstr, user, password);
			 
			 /*String connstr = "jdbc:mysql://" + tfhost.getText() + "/" + tfdbname.getText();
			 meld.append("\n" + connstr);
			 conn = DriverManager.getConnection(connstr, tfuser.getText(),tfpass.getText());*/
 			//conn = DriverManager.getConnection("jdbc:mysql://"+ tfhost.getText() + ":"+ tfdbname.getText(), tfuser.getText(), tfpass.getText());
				Komplett.Text("Verbindungsaufbau");}
				catch(SQLException sqle){
					Komplett.Text("Verbindung fehlgeschlagen: " + sqle.getMessage());
};
}
				
}
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.sql.*;

public class Komplett extends JFrame{
	private JTextField tfname = new JTextField();
	private JPasswordField tfpw = new JPasswordField();
	private JTextField tfdb = new JTextField();
	private JTextField tfhost = new JTextField();
	private static JTextArea aus = new JTextArea();
	private static JTextArea ein = new JTextArea();

	public static Connection conn = null;
	//Statement stmt = null;
	
		public static void Text(String text){
		Komplett.aus.append("\n"+text);
		}
	
	public Komplett(){
	    super("MySQL - Schnittstelle");
	    
	    JPanel pan = new JPanel();
	    pan.setLayout(new GridBagLayout());
	    //pan.setBackground(Color.white);
				
		JLabel lab = new JLabel();
		lab.setOpaque(true);
		//lab.setBackground(Color.blue);
		//lab.setForeground(Color.red);
		lab.setFont(new Font("Helvetica", Font.PLAIN, 14));
		lab.setText("Benutzername: ");
		pan.add(lab, new GridBagConstraints(0,0,1,1,0.4,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0), 1, 1));

		
		JLabel lab2 = new JLabel();
		lab2.setOpaque(true);
		//lab2.setBackground(Color.blue);
		//lab2.setForeground(Color.black);
		lab2.setFont(new Font("Helvetica", Font.PLAIN, 14));
		lab2.setText("Passwort: ");
		pan.add(lab2, new GridBagConstraints(0,1,1,1,0.4,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		JLabel lab3 = new JLabel();
		lab3.setOpaque(true);
		lab3.setFont(new Font("Helvetica", Font.PLAIN,14));
		lab3.setText("Host: ");
		pan.add(lab3, new GridBagConstraints(0,2,1,1,0.4,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		JLabel lab4 = new JLabel();
		lab4.setOpaque(true);
		lab4.setFont(new Font("Helvetica", Font.PLAIN, 14));
		lab4.setText("Datenbank: ");
		pan.add(lab4, new GridBagConstraints(0,3,1,1,0.4,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		JLabel lab5 = new JLabel();
		lab5.setOpaque(true);
		lab5.setFont(new Font("Helvetica", Font.BOLD, 16));
		lab5.setText("Abfrage: ");
		pan.add(lab5, new GridBagConstraints(1,5,1,1,1.0,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,0,0,0),1,1));
			
		//JTextField tfname = new JTextField();
		tfname.setFont(new Font("Helvetica", Font.PLAIN,14));
		String user = tfname.getText();
		pan.add(tfname, new GridBagConstraints(1,0,1,1,1.0,0.01,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		//JTextField tfpw = new JTextField();
		tfpw.setFont(new Font("Helvetica", Font.PLAIN,14));
		String pw = tfpw.getText();
		pan.add(tfpw, new GridBagConstraints(1,1,1,1,1.0,0.01,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		//JTextField tfhost = new JTextField();
		tfhost.setFont(new Font("Helvetica", Font.PLAIN,14));
		String host = tfhost.getText();
		pan.add(tfhost, new GridBagConstraints(1,2,1,1,1.0,0.01,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		//JTextField tfdb = new JTextField();
		tfdb.setFont(new Font("Helvetica", Font.PLAIN,14));
		String db = tfdb.getText();
		pan.add(tfdb, new GridBagConstraints(1,3,1,1,1.0,0.01,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		JButton but = new JButton();
		but.setText("Verbinden");
		but.setBackground(Color.green);
		but.addActionListener(AL);
		pan.add(but, new GridBagConstraints(0,4,2,1,1.0,0.01,
			GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		JPanel pan2= new JPanel();
		pan2.setLayout(new GridBagLayout());
		
		//JTextArea aus = new JTextArea();
		aus.setFont(new Font("Helvetica", Font.PLAIN, 12));
		JScrollPane scroll = new JScrollPane(aus);
		pan2.add(scroll, new GridBagConstraints(0,0,3,4,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
				
		//JTextArea ein = new JTextArea();
		ein.setFont(new Font("Helvetica", Font.PLAIN,12));
		JScrollPane scroll2 = new JScrollPane(ein);
		pan2.add(scroll2, new GridBagConstraints(0,4,3,2,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		JButton but2 = new JButton();
		but2.setText("Ausführen");
		but2.setBackground(Color.green);
		but2.addActionListener(AL2);
		pan2.add(but2, new GridBagConstraints(0,8,2,1,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
		
		JButton but3 = new JButton();
		but3.setText("Beenden");
		but3.setBackground(Color.red);
		but3.addActionListener(AL3);
		pan2.add(but3, new GridBagConstraints(2,8,1,1,1.0,1.0,
			GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			
		this.getContentPane().setLayout(new GridBagLayout());
			this.getContentPane().add(pan, new GridBagConstraints(0,0,1,1,1.0,1.0, 
				GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
			this.getContentPane().add(pan2, new GridBagConstraints(1,0,1,1,1.0,1.0,
				GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,0,0,0),1,1));
				
		}
			
		ActionListener AL = new ActionListener(){
			public void actionPerformed(ActionEvent e){
				Verbindung V = new Verbindung(tfname.getText(), tfpw.getText(), tfhost.getText(), tfdb.getText() );
			}
			};
						
		ActionListener AL2 = new ActionListener(){
			public void actionPerformed(ActionEvent e){
				Abfrage A = new Abfrage(ein.getText());
			}
			};
		    		    
		ActionListener AL3 = new ActionListener(){
			public void actionPerformed(ActionEvent e){
			Text("Verbindung wird beendet");
			try{
			conn.close();
			Text("Verbindung beendet");}
			catch(SQLException exc){
				Text("Fehler beim Beenden");}
			}
			};
			
	
			}
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.sql.*;

public class Abfrage{
		
		public Abfrage(String eins){
			
			Statement stmt = null;
			ResultSet res = null;
			
			Komplett.Text("Verarbeitung beginnt");
			
			try{
				stmt = conn.createStatement();
			}
			catch(SQLException e){
				Komplett.Text("Fehler beim Ausführen der Abrage"+e);
			};
			
			try{
				if ( stmt.execute(eins)){
					res = stmt.getResultSet();
					//show_result(res);
					res.close();
				}
				else{
					Komplett.Text("Abfrage ausgeführt");
					Komplett.Text("\r\nAnzahl Datensätze: "+ stmt.getUpdateCount());
				}
}
				catch (SQLException e){
			  		Komplett.Text("Fehler beim Ausführen der Abfrage: "+ e);
				}
				try{
					stmt.cancel();
					stmt.close();
				}
				catch (SQLException e){
					Komplett.Text("Fehler beim Ausführen der Abfrage" +e);
				}
				try{
					stmt.cancel();
					stmt.close();
					}
					catch(SQLException e){
						Komplett.Text("Fehler beim Ausführen der Abfrage2"+e);
					}
		
			
		
}
}
 

thE_29

Top Contributor
Die Klasse Verbindung geht kompilieren???

Es gibt ja kein con Objekt da drinnen, du müsstest schon das con Objekt von der Klasse komplett ansprechen oder du machst das public static in die Verbindungs klasse (was besser wäre) und sprichst die Verbindung so wie früher an!

Verbindung.conn.xxx
 
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
M connection übergeben Allgemeine Java-Themen 20
S HTTP Connection über einen Proxy Allgemeine Java-Themen 2
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
E Swing andere schreibart für jButtoni (i = Zahl des Buttons) Allgemeine Java-Themen 6
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
R bei eclipse von java in eine andere programmiersprache wechseln? Allgemeine Java-Themen 2
B Chat auf andere Datentypen aufteilen Allgemeine Java-Themen 2
A Datum und Uhrzeit in andere Zeitzone umrechnen Allgemeine Java-Themen 7
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
DanielsLPecke Java Arrays an andere Java Programme schicken und zurück Allgemeine Java-Themen 5
T Während des Programmlaufs andere Programme ausführen Allgemeine Java-Themen 1
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
M ZipOutputStream gleiche Datei andere Größe? Allgemeine Java-Themen 0
Todesbote Zeilen aus Excel in andere Excel Tabelle kopieren Allgemeine Java-Themen 0
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
K LED-Matrix oder andere "Hardware" für JavaProgrammierung Allgemeine Java-Themen 9
F Array viel zu groß...andere Lösungen? Allgemeine Java-Themen 12
M Arraynamen an andere Klasse übergeben für allg. Rechnung Allgemeine Java-Themen 7
N Static oder andere Lösung Allgemeine Java-Themen 5
L Eine jar verwenden, die intern auf eine andere jar zugreift Allgemeine Java-Themen 7
B JAR Datei führt eine andere JAR Datei aus Allgemeine Java-Themen 2
M Methoden/Klassen für andere Projekte Allgemeine Java-Themen 4
S Von einer ArrayList in die andere schreiben? Allgemeine Java-Themen 6
Z Daten von einer Klasse in eine andere übertragen Allgemeine Java-Themen 8
E Wert in andere Klasse übernehmen Allgemeine Java-Themen 4
E Werte in andere Klasse übernehmen Allgemeine Java-Themen 8
S String in eine andere Klasse übergeben Allgemeine Java-Themen 25
S Mit einem jButton eine andere Klasse öffnen Allgemeine Java-Themen 2
J Array Sortierung auf andere Arrays anwenden Allgemeine Java-Themen 6
T Webservice definieren und andere Webservice aufrufen Allgemeine Java-Themen 8
W xml File einlesen und in eine andere xml File einfügen.. Allgemeine Java-Themen 2
M Javamail -> andere Möglichkeit für Attachment Allgemeine Java-Themen 5
S Passt eine Flaeche in eine andere? Allgemeine Java-Themen 2
K import- Anweisung fehlerhaft und andere Fehler (eclipse) Allgemeine Java-Themen 2
M Map umformen und in andere Map schreiben Allgemeine Java-Themen 2
R if-Anweisung wird angemeckert, andere identische nicht Allgemeine Java-Themen 9
M Andere Möglichkeit zu casten Allgemeine Java-Themen 8
R Wert von einer Klasse in eine andere bekommen Allgemeine Java-Themen 6
A andere Methode "abschiessen" Allgemeine Java-Themen 6
I Teile von ArrayList in eine andere kopieren? Allgemeine Java-Themen 2
C Prüfen, ob eine Methode eine andere überschreibt! WIE? Allgemeine Java-Themen 8
A Java oder andere Sprache? Was ist geeigneter? Allgemeine Java-Themen 55
J Netbeans: wie auf grafische elemente zugreifen, andere Datei Allgemeine Java-Themen 2
G Da Jikes nicht mit java 5 geht, gibt es eine andere. Allgemeine Java-Themen 4
P Mehrzeiligen Text aus JTA lesen und in andere JTA kopieren Allgemeine Java-Themen 7
M Funktion als Parameter oder andere Möglichkeit Allgemeine Java-Themen 3
Y Aus einem Java Programm andere (Exe-)Programme starten Allgemeine Java-Themen 3
S Daten in andere Klasse übergeben Allgemeine Java-Themen 5
S Wie ICQ, AIM und andere IM mit Java steuern? Allgemeine Java-Themen 2
G JCreator, andere Editoren ? Allgemeine Java-Themen 4
K Andere Interpretation eines Typs Allgemeine Java-Themen 7
H Methoden in andere Files auslagern Allgemeine Java-Themen 6
H Andere Software fernsteuern Allgemeine Java-Themen 7
M Zugriff auf andere Prozesse Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben