kompilierung klappt nur wenn main vorhanden ist

Status
Nicht offen für weitere Antworten.

jollyroger

Bekanntes Mitglied
hallo,

weder google noch suchfunktion haben mich bei folgendem problem weitergebracht:

folgendes einfaches programm zum aufbauen einer jdbc-mysql-verbindung:

Code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ExtractRFQ {

	  public static void main(String args[]) {
	    Connection con = null;
	
	    try {
	      Class.forName("com.mysql.jdbc.Driver").newInstance();
	      con = DriverManager.getConnection("jdbc:mysql:///test",
	        "test", "test");

	      if(!con.isClosed())
	        System.out.println("Successfully connected to " +
	          "MySQL server using TCP/IP...");

	    } catch(Exception e) {
	      System.err.println("Exception: " + e.getMessage());
	    } finally {
	      try {
	        if(con != null)
	          con.close();
	      } catch(SQLException e) {}
	    }
	  }
	}

klappt wunderbar....

entferne ich aber nun:

Code:
public static void main(String args[]) { }

zeigt mir eclipse

Code:
syntax error on token ";" , { expected after this token

für die zeile:

Code:
Connection con = null;

hat dafür jemand ein erklärung? das ich das ding ohne die main-methode nicht ausführen kann ist mir ja klar, aber kompilieren müsste doch klappen? wo ist denn hier das problem?

p.s.: klammern oder ähnliches hab ich nicht vergessen, hier ist der code der NICHT zu kompilieren geht, obwohl nur die main-methode fehlt:


Code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ExtractRFQ {

	    Connection con = null;

	    try {
	      Class.forName("com.mysql.jdbc.Driver").newInstance();
	      con = DriverManager.getConnection("jdbc:mysql:///rfq",
	        "rfq", "rfq");

	      if(!con.isClosed())
	        System.out.println("Successfully connected to " +
	          "MySQL server using TCP/IP...");

	    } catch(Exception e) {
	      System.err.println("Exception: " + e.getMessage());
	    } finally {
	      try {
	        if(con != null)
	          con.close();
	      } catch(SQLException e) {}
	    }
	}
 

lin

Top Contributor
hm.. ich kenn mich mit JDBC net aus,.. aber muss das ganze nicht in ne Methode rein?

edit: doch eh.. du kannst nicht einfach code in ne Klasse reinschreiben, .. dazu sind Methoden da..
 

jollyroger

Bekanntes Mitglied
doch eh.. du kannst nicht einfach code in ne Klasse reinschreiben, .. dazu sind Methoden da..

ja, das ist mir klar, dass man dafür methoden nehmen sollte, aber muss man das wirklich?
gibt es einen grund (ausser design) warum nicht direkt code in eine klasse schreiben kann?

danke für den hinweis auf jeden fall
 
R

Roar

Gast
jollyroger hat gesagt.:
doch eh.. du kannst nicht einfach code in ne Klasse reinschreiben, .. dazu sind Methoden da..

ja, das ist mir klar, dass man dafür methoden nehmen sollte, aber muss man das wirklich?
gibt es einen grund (ausser design) warum nicht direkt code in eine klasse schreiben kann?

danke für den hinweis auf jeden fall
ehm, schau dir vielleicht nochmal nen oop oder java einsteigerbuch an bevor du mit jdbc rumfrickelst. du kannst keinen code einfachso in eine klasse schreiben (überleg mal: wann z.B. sollte der code denn ausgeführt werden?)
 

SamHotte

Top Contributor
Naja, man könnte statt einer Methode den statischen Initialisierer benutzen, dann würde es gehen; ob es sinnvoll ist, müsste man natürlich noch diskutieren ...
 

VipViper2000

Aktives Mitglied
statt einer Methode den statischen Initialisierer

Was bitte ist denn ein statischer Initilisierer? Du meintst doch hoffentlich nicht den Konstruktor, oder? Und mal so nebenbei: Klar kannst du klassen machen, die keine Methoden sondern vielleicht nur nen Konstruktur enthalten. Aber dann zeig mir mal, wie du ohne main diesen Konstruktor aufrufst :lol:
 
R

Roar

Gast
er meint sowas:

Code:
class Blabber {
   static {
        methodenAufruf();
        sonstigerSchmu();
    }
}

aber auch ein konstruktor ist eine methode... mehr oder weniger ;)
 

VipViper2000

Aktives Mitglied
Instanz-
Initialisierer: Rolle eines Default- Konstruktors

Ein Instanz-Initialisierer hat keine Parameter, entspricht also dem Default-Konstruktor.

Also ist ein Instanz-Initilisierer im Prinzip ein Default Konstruktor.

Aber mal ehrlich: Vielleicht wäre sowas wie Assembler ( was gibts denn noch an alten Sprachen, die überhaupt nicht OOP sind ausser C :lol: ) mehr was für ihn :oops: .

Also ich neulich nen C-Kurs an der Uni gemacht hab, wär ich fast ausgerastet. Wenn man einmal an Java und Eclipse gewöhnt ist, ist man VERwöhnt :roll:
 
R

Roar

Gast
VipViper2000 hat gesagt.:
Instanz-
Initialisierer: Rolle eines Default- Konstruktors

Ein Instanz-Initialisierer hat keine Parameter, entspricht also dem Default-Konstruktor.

Also ist ein Instanz-Initilisierer im Prinzip ein Default Konstruktor.
ich weiß zwar nich was ein "isntanz-initialiser" sein soll, aber jedenfalls kein "static-initializer", dieser wird ausgefürt, sobald die klasse das erste (und einzige) mal geladen wird.
 
G

Guest

Gast
Hi!

Verdammt, hab bei dem Link von oben nicht weiter runter sondern nur ein bisschen hoch gescrollt. Weiss jetzt auch, was ein static Initialiazer ist. Aber darin wirklich Code auszuführen, was die Inititilisierung von statischen Variablen unterstreicht macht halt trotzdem wenig Sinn.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Ich möchte dass ich nachdem man den Kommentar geschrieben hat den Kommentar in den Tabelle Bestellübersicht geschbeichert wird klappt nicht bei mir Datenbankprogrammierung 2
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
T SQL-Statement case when then klappt nicht Datenbankprogrammierung 4
P JDBC Verbindung zur DB klappt nicht Datenbankprogrammierung 6
Kenan89 Wieso klappt das ResultSet nicht? Datenbankprogrammierung 3
I DB-Zelleninhalt mit String vergleichen klappt nicht Datenbankprogrammierung 3
S MySQL sql befehl in java klappt nicht Datenbankprogrammierung 3
G Verbingungsaufbau zur Datenbank klappt nicht Datenbankprogrammierung 9
G Warum klappt connect zur MySQL-DB nicht Datenbankprogrammierung 3
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
berserkerdq2 Was kann passieren, wenn ich in java einstelle, dass der Fremdschüssel ein Attribut ist, welches selber kein Primärschlüssel ist? Datenbankprogrammierung 4
B Distanz berechnen, wenn ich Longitude und Latidute habe? Datenbankprogrammierung 16
Kirby.exe Zeile aus der Datenbank holen wenn ein match besteht Datenbankprogrammierung 7
F Tabellen automatisch erstellen wenn sie nicht existieren Datenbankprogrammierung 6
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
E Kann man, wenn man in DB2 Tabellen erstellt hat für dessen auch einen Command-File erstellen? Datenbankprogrammierung 1
M Hibernate - Save Child wenn nötig Datenbankprogrammierung 10
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
Kandum MySQL Anzahl gefundener Datensätze bleibt gleich, auch wenn mehr existieren und ausgegeben werden Datenbankprogrammierung 3
S MySQL Abfrage: Wenn Feld leer, alles anzeigen Datenbankprogrammierung 5
I Sonderbehandlung wenn ResultSet leer ist Datenbankprogrammierung 9
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
H Derby/JavaDB SQLException wenn die Datenbank in eine Jar gepackt wurde. Datenbankprogrammierung 6
W MySQL Rückgabewert wenn Wert nicht in DA Datenbankprogrammierung 7
S Hibernate - Abgeleitete Klassen werden nicht angezeigt wenn... Datenbankprogrammierung 6
S Tabelle updaten wenn ResultSet aus JDBC-Quelle Datenbankprogrammierung 2
Saxony Benachrichtigung wenn sich Datenbank ändert Datenbankprogrammierung 10
P HELP! Tabelle sortieren wenn man auf Spaltennamen klickt SQL Datenbankprogrammierung 2
C SQLException wenn String auf VARCHAR geschrieben wird Datenbankprogrammierung 10
A Was passiert wenn eine Datenbankverbindung unterbricht Datenbankprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben