non-static variable con cannot be referenced from a static context

nieselfriem

Bekanntes Mitglied
Hallo!

Ich versuche mir eine kleine Connectionklasse für MYSQL in java zu schreiben.
diese sieht wie folgt aus
Java:
import java.sql.*;
public class MySQLConnect {
   
   private String dbmysqldrv="com.mysql.jdbc.Driver";
   private String dbmysqlurl="jdbc:mysql://localhost:3306/test";
   private String dbmysqlusr="root";
   private String dbmysqlpw="password";
   
   private String dbiniterrorstr="";
   private String connecterrorstr="";
   private String sqlexcstr="";
   private String sqlwarnstr="";
   
   
   public boolean initDatabaseDriver(){
      try {
         Class.forName(dbmysqldrv);
	     return true;	
      }//try
      catch(Exception e) {
         dbiniterrorstr= (dbiniterrorstr+"\n--- Fehler bei der Treiberregistrierung ---\n");
  	     dbiniterrorstr=(dbiniterrorstr+e.getMessage());
	     e.printStackTrace();
		return false;
      }//catch
   }//initDatabaseDriver
   
   public Connection connectDataBase() {
      Connection con = null;
	  try {
	     con =DriverManager.getConnection(dbmysqlurl,dbmysqlusr,dbmysqlpw); 
  	  }//try
	  catch(SQLException e) {
	  connecterrorstr=(connecterrorstr+"\n--- Fehler bei der Treiberregistrierung ---\n");
	  connecterrorstr=(connecterrorstr+e);
	  }//catch
	  catch(Exception e) {
	     connecterrorstr=(connecterrorstr+"\n--- Fehler bei der Treiberregistrierung ---\n");
		 connecterrorstr=(connecterrorstr+e);
	  }//catch
	  return con;
   }//connectDataBase
   
   public String getDBinitError() {
      return dbiniterrorstr;
   }
   
   public String getConnectError() {
      return connecterrorstr;
   }
}//class
diese Klasse soll nun zu Testzwecken in einer kleine Select-Anwendung ausgeführt bzw. verwendet werden.
Java:
import java.sql.*;

public class Select2 {
   
   MySQLConnect mysqlcon = new MySQLConnect();
     
  
   private Statement stmt = null;
   private ResultSet rs = null;
   
     boolean  initdrv=mysqlcon.initDatabaseDriver();
     Connection con=mysqlcon.connectDataBase();
   
   public static void main(String[] argv) {
      if (!initdrv) {
         System.out.println(mysqlcon.getDBinitError());
      }
            
      if(!con) {
         System.out.println(mysqlcon.getConnectError());  
      }
      try {
	    System.out.println("Verbindung zu DB ok\nDatenbank aus der Datenbank holen...");
		stmt = con.createStatement();
		rs = stmt.executeQuery("SELECT * FROM mitarbeiter");
		System.out.println("gelesene Ergebnisse:");
		while(rs.next()) {
		   String nummer = rs.getString(1);
		   String name = rs.getString(2);
		   String vorname = rs.getString(3);
		   System.out.println("Nummer="+nummer);
		   System.out.println("Name="+name);	
		   System.out.println("Vorname="+vorname);	
		 }//while
		 rs.close();
		 stmt.close();
		 con.close();
	 }//try
     catch(SQLException e) {
	    System.out.println(e.getMessage);
     }//catch
   }//main
  }//class
Jedoch bekomme ich da folgende Probleme
Code:
Select2.java:15: non-static variable initdrv cannot be referenced from a static context
      if (!initdrv) {
           ^
Select2.java:16: non-static variable mysqlcon cannot be referenced from a static context
         System.out.println(mysqlcon.getDBinitError());
                            ^
Select2.java:19: non-static variable con cannot be referenced from a static context
... und weitere, die auf die obigen Probleme aufbauen
Ich habe doch keine statischen Methoden in der MySQLConnect-Klasse verwendet oder gelten die Variablen als static?
Eine Erklärung währe sehr hilfreich, ich steh da gerade echt auf dem Schlauch

Gruß niesel
 

icarus2

Top Contributor
Mach mal Select2 s = new Select2() oder sowas. Dann hast du ein Objekt und kannst entweder den ganzen Code aus der Main in den Konstruktor nehmen, oder du rufst die Instanzvariablen über den Objektnamen auf.
 

nieselfriem

Bekanntes Mitglied
"main ist static und Deine Klassenvariablen nicht. Das genau wird ja auch angemerkt. "

Das versteh ich nicht. ich muß doch auch in der main. Instanzen eines Objetes erzeuigen und verwenden können, was nicht static ist.
Aber ich habe gelesen, dass die Methoden getConnection() und forName() wohl stic Methoden sind. Währe möglich, dass es daran liegt.
 

eRaaaa

Top Contributor
"main ist static und Deine Klassenvariablen nicht. Das genau wird ja auch angemerkt. "

Das versteh ich nicht. ich muß doch auch in der main. Instanzen eines Objetes erzeuigen und verwenden können, was nicht static ist.
Aber ich habe gelesen, dass die Methoden getConnection() und forName() wohl stic Methoden sind. Währe möglich, dass es daran liegt.

In der Fehlermeldung steht doch genau woran es liegt?
--> initdrv = nicht static = du kannst sie nicht aus einer statischen Methoden wie die Main verwerden!(außer du erstellst wie schon angesprochen ein Objekt || du machst sie eben statisch ;>)

http://www.java-forum.org/stichwort...ic-method-cant-referenced-static-context.html
 

nieselfriem

Bekanntes Mitglied
ich habs. habe nur folgendes gemacht. Habe das Objekt
Java:
MySQLConnect mysqlcon = new MySQLConnect
in der main erzeugen lassen, auch irgendwie logisch in java. Dann habe ich die Variablen rs und, stmt als static mittels
Java:
private static  Statement stmt = null;
private static ResultSet rs = null;

umgeschrieben, und siehe da es geht. Danke für eure Tipps!
 

Landei

Top Contributor
So geht es natürlich auch. Um das Problem in der ursprünglichen Form zu lösen: initdrv und so sind bei dir eine Instanzvariable, du greifst aber aus einem statischen Kontext (sozusagen "der Klasse selbst") darauf zu.

Entweder du machst alle Variablen in Select2 statisch:

Java:
static MySQLConnect mysqlcon = new MySQLConnect();
...usw.

oder du erzeugst in main eine Instanz von Select2:

Java:
  public static void main(String[] argv) {
      Select2 inst = new Select2();
      if (!inst.initdrv) {
         System.out.println(mysqlcon.getDBinitError());
      }
     ...

Oder du holst als dritte Variante alle Variablen in die Methode selbst, wie von dir beschrieben. Dann stehen sie aber nach Beendigung der Methode nicht mehr zur Verfügung (was aber bei main kein Problem sein sollte).
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
K Objekt erstellen - error: non-static variable this cannot be referenced from a static context Java Basics - Anfänger-Themen 17
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
J Variablen non-static variable Java Basics - Anfänger-Themen 2
M Static Variable "dynamisch" aufrufen? Java Basics - Anfänger-Themen 8
R Stoppuhr: Zeit ermitteln und übergeben - Variable static?? Java Basics - Anfänger-Themen 6
P non-static variable. Java Basics - Anfänger-Themen 2
G non-static variable Java Basics - Anfänger-Themen 5
S static/non-static variable - mal wieder Java Basics - Anfänger-Themen 5
M static Variable in Funktion? Java Basics - Anfänger-Themen 2
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
A Instance methods should not write to "static" fields Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
H Static Java Basics - Anfänger-Themen 5
K Ausgaben auf der Konsole (static Varible) Java Basics - Anfänger-Themen 9
S public static boolean Java Basics - Anfänger-Themen 4
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
L non-static Fehler Java Basics - Anfänger-Themen 16
S Klassenmethode ohne static Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
D Methoden Scannervariablen in static Methoden Java Basics - Anfänger-Themen 5
V the static method should be accessed is a static way Java Basics - Anfänger-Themen 6
NormanPatrickBenner static non-static Java Basics - Anfänger-Themen 82
N Erste Schritte "non-static method" oder "XYZ can not be resolved" Java Basics - Anfänger-Themen 21
B Email versenden, muss Methode static sein? Java Basics - Anfänger-Themen 7
R static in der Methode Java Basics - Anfänger-Themen 2
E Problem mit static Methode Java Basics - Anfänger-Themen 4
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
D Das leidige Thema static.... Java Basics - Anfänger-Themen 15
T Problem mit static Java Basics - Anfänger-Themen 6
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
snipesss Was kann 'static'? Java Basics - Anfänger-Themen 4
M public static int in ActionListener Java Basics - Anfänger-Themen 6
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
E Objekte und static Java Basics - Anfänger-Themen 2
K Methoden Methoden in Methoden -> static oder nicht? Java Basics - Anfänger-Themen 7
D Erklärung static boolean Java Basics - Anfänger-Themen 6
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
U Erste Schritte cannot be referenced from a static context Java Basics - Anfänger-Themen 1
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
O Zu viel static im Projekt Java Basics - Anfänger-Themen 9
F Static final Klasse Java Basics - Anfänger-Themen 0
N static und Objekt kombiniert?!? Java Basics - Anfänger-Themen 3
O Wann nutzt man static? Java Basics - Anfänger-Themen 19
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
A Static variablen --- Anwendungsbereich Java Basics - Anfänger-Themen 11
B Erste Schritte Wie komme ich aus Static raus?!! Java Basics - Anfänger-Themen 4
V Static Methods Java Basics - Anfänger-Themen 5
W Compiler-Fehler "non-static method cannot be referenced"-Problem Java Basics - Anfänger-Themen 6
S OOP Klasse mit static-Eigenschaften - HashMap füllen Java Basics - Anfänger-Themen 6
3 OOP static class in einer Klasse Java Basics - Anfänger-Themen 6
B static individuell "vererben"? Java Basics - Anfänger-Themen 8
B Erkennen, wann static oder nicht? Java Basics - Anfänger-Themen 7
T Static Fehler Java Basics - Anfänger-Themen 1
R public static void Rückgabe Java Basics - Anfänger-Themen 5
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
A Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 6
W Variablen Automatisch static? Java Basics - Anfänger-Themen 3
O Warum muss ich static? Java Basics - Anfänger-Themen 6
O Static Java Basics - Anfänger-Themen 15
E non-static method und static context Java Basics - Anfänger-Themen 15
B non static interface Methode Java Basics - Anfänger-Themen 16
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
S Static void Methode Java Basics - Anfänger-Themen 12
Q Unterschied zwischen static und keinem Modifier Java Basics - Anfänger-Themen 15
O Main-Methode static modifier umgehen Java Basics - Anfänger-Themen 10
P Erste Schritte public oder static oder wie? Java Basics - Anfänger-Themen 7
J static - Methoden Java Basics - Anfänger-Themen 22
X Erste Schritte Methode ohne Static Java Basics - Anfänger-Themen 4
B Classpath static block - Verwirrung Java Basics - Anfänger-Themen 2
S Methoden Warum ist sleep static? Java Basics - Anfänger-Themen 9
K static, non-static Krise Java Basics - Anfänger-Themen 4
R Schlüsselworte static Methoden und Imports Java Basics - Anfänger-Themen 10
M Methoden "Non-static method xy cannot be referenced from a static context" Java Basics - Anfänger-Themen 20
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
H non-static method cannot be referenced from a static context Java Basics - Anfänger-Themen 2
Y Gebrauch von static Java Basics - Anfänger-Themen 29
L Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 6
T getClass() im static Kontext Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben