SQL Statement formatieren + Swingzeug auslagern

Status
Nicht offen für weitere Antworten.

kinglui

Aktives Mitglied
Hallo beisammen,

ich programmiere ein wenig mit Java und bin nun an dem Punkt angelangt, wo Teile vom Code echt unübersichtlich werden. Daher 2 Fragen, die mir ein wenig die Übersicht bringen sollen ;)

1) Ich möchte gerne mehere SQL Statements auf einmal abfeuern. z.B. den hier:
Code:
-- SQL-Datei für MySQL
-- Beim ersten Laden muss die folgende Zeile auskommentiert sein,
-- bei wiederholten Versuchen muss sie aktiviert sein ('--' entfernen):
-- DROP DATABASE MeineDb;
CREATE DATABASE MeineDb;
SHOW databases;
USE MeineDb;
CREATE TABLE MeineTestTabelle ( i INT, c CHAR(3), s VARCHAR(8), dt DATE );
CREATE TABLE MeineAdressen ( Name VARCHAR(16), Plz INT, Ort VARCHAR(16) );
SHOW tables;
INSERT INTO MeineTestTabelle VALUES ( 11, 'ABC', 'Blubb', '2000-01-01' );
INSERT INTO MeineTestTabelle VALUES ( 12, 'ab', 'Blabla', '2000-12-31' );
INSERT INTO MeineTestTabelle VALUES ( 42, 'xy', 'äöüߧ€', '2005-06-06' );
SELECT * FROM MeineTestTabelle;
INSERT INTO MeineAdressen VALUES ( 'Achim',     52078, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Alexander', 52134, 'Herzogenrath' );
INSERT INTO MeineAdressen VALUES ( 'Helmut',    52066, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Josef',     52070, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Manfred',   52146, 'Würselen' );
INSERT INTO MeineAdressen VALUES ( 'Patrick',   52074, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Roland',    52134, 'Herzogenrath' );
INSERT INTO MeineAdressen VALUES ( 'Torsten',   52072, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Werner',    52066, 'Aachen' );
SELECT * FROM MeineAdressen;

[Quelle: http://www.torsten-horn.de/techdocs/mysql.htm#CreateDatabase]

wenn eine Selecteanweisung zu lang wird, mache ich das einfach so:
Code:
"SELECT bla bla bla bla bla from bla", +
"WHERE noch mehr bla steht",+
"AND xyt = 123" ;

Das passt hier aber nicht mehr. Wie kann ich am besten eine DB (+ Tabellen) erstellen und gleichzeitig mit Inhalt füllen? Gerne lager ich auch in externe Files aus, wenn es der Übersicht dient.


2)
Wie gesagt arbeite ich ein wenig mit Swing..
Da ich nicht gerne mit versch. Frames arbeite, steht das meiste im Mainframe und wird dementsprechend lang/unübersichtlich.

zB habe ich einige Panels, die ich wiederrum mit Button und Textfeldern (+ Funktionen) bestückt habe.


Kann ich hier Code auslagern?



Vielen Dank für die Tipps!
 

kinglui

Aktives Mitglied
Keine Ahnung oder bin ich zu unverständlich ? ;)

Vielleicht so:
Ich würde gerne die gesamten SQL Statements in einen Query abschicken.
Also im Prinzip eine Art Installer der Datenbank auf Buttonklick.


Danke
 

Onkel Hatti

Bekanntes Mitglied
Schau dir mal die Methoden

void addBatch(String sql) throws SQLException

und

int[] executeBatch() throws SQLException

der Klasse "Statement" an.
 
S

SlaterB

Gast
> Kann ich hier Code auslagern?

Code kann man immer und überall auslagern
 

kinglui

Aktives Mitglied
Das ist schon mal gut.
Erstelle ich dazu am besten eine neue Klasse?

Wie rufe ich diese dann an der speziellen Stelle auf, damit in der Darstellung alles korrekt bleibt?


Danke!
 

Capasso

Bekanntes Mitglied
Ein Hinweis am Rande,
das
"SELECT bla bla bla bla bla from bla", +
"WHERE noch mehr bla steht",+
"AND xyt = 123" ;
ergibt das
SELECT bla bla bla bla bla from blaWHERE noch mehr bla stehtAND xyt = 123
Da fehlen also Leerzeichen.

----
Ich würde eine createIrgendwas.sql dem Projekt beilegen, wo alle Statements drin stehen. Diese dann einlesen und ausführen.
 
S

SlaterB

Gast
> Erstelle ich dazu am besten eine neue Klasse?

entweder das oder eine neue Methode, ohne irgendeine Art von Info kann man dazu nix sagen,
DB-Dinge haben in einer GUI-Klasse normalerweise nix verloren

> Wie rufe ich diese dann an der speziellen Stelle auf, damit in der Darstellung alles korrekt bleibt?

mit einem korrekten Aufruf
 

kinglui

Aktives Mitglied
Okay.
Aber mit welchem Dateityp soll ich auslagern bei
a) sql Zeug und
b) wenn ich zB das Aussehen eines Panels beschreibe (bzw. mit Buttons versehe usw)
?

Danke
 
S

SlaterB

Gast
Auslagern <-> Dateityp sagt mir wenig,

meinst du einen Klassennamen für die neue Klasse mit den ausgelagerten Code?
lieber 10 Worte als 3 Worte benutzen

der Name ist doch wirklich egal, ich sehe jetzt vorerst keine Frage
 
M

maki

Gast
Reine SQL Skripte kannst du in Dateien die auf DDL oder SQL enden auslagern.
 

kinglui

Aktives Mitglied
Reine SQL Skripte kannst du in Dateien die auf DDL oder SQL enden auslagern.

Okay, und wie binde ich diese dann ein? Wie sage ich, dass das SQL Statement nur im ActionEvent des Buttons aufgerufen werden soll und nicht woanders auch noch?

SlaterB:
ich versuchs mal ;)

Ich erstelle eine Swinganwendung. Standardmäßig habe ich dann die Files Frame1.java und Prgrammname.java.
mit "*.java" meine ich Dateitypen. Wenn ich jetzt eine Klasse auslagere, habe ich den Typen "*.class".

Sagen wir aber mal, ich habe die Objekte:
Frame1,Panel1, Button1, TextField1, Table1.

Die Beziehungen sollen so aussehen:
Frame1.add(Panel1);
Panel1.add(Button1);
Panel1.add(TextField1);
Panel1.add(Table1);

Wenn jetzt noch jedes Object 10 eigenen Einstellungen und noch Actionperformer hat, dann wird das schnell unübersichtlich (okay, ich habe 4 Panels mit mehr Objekten)..

Kann ich jetzt einfach die o.g. Beziehungen und deren ActionPerformer in eine weitere Datei auslagern und in meinem Frame1 einfach nur ein Verweis hinterlassen, dass man in der ausgelagerten Datei alle Settings und Funktionen findet?

Wenn ja: welcher Dateityp sollte das sein und b) wie binde ich das dann an entsprechender Stelle wieder ein, damit Darstellung und Funktionalität gleich bleibt.


Hoffe ich war diesmal verständlicher?!

Danke
 
S

SlaterB

Gast
alle Java-Klassen sind in Dateien .java geschrieben,
deine eine Klasse, deine 5 Klassen oder die 50.000 Klassen der API

genau wie du new JButton() schreibst kannst du auch new MySpecialButton() aufrufen,
wenn du eine extra Klasse für einen besonderen Button definiert hast
 

kinglui

Aktives Mitglied
Okay, ich steh irgendwie auf dem Schlauch.
1) nehmen wir mal an, ich möchte ein leeres Frame mit einem Panel versehen, welchen einen Button enthält:
Code:
package test;
import java.awt.Dimension;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Frame1 extends JFrame {
  private JPanel jPanel1 = new JPanel();
  private JButton jButton1 = new JButton();

  public Frame1() {
    try {
      jbInit();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  private void jbInit() throws Exception {
    this.getContentPane().setLayout( null );
    this.setSize( new Dimension(400, 300) );
    jPanel1.setBounds(new Rectangle(25, 30, 335, 205));
    jButton1.setText("jButton1");
    jPanel1.add(jButton1, null);
    this.getContentPane().add(jPanel1, null);
  }
}

So.. nehmen wir weiter an, dass mir das zu unübersichtlich wird. Ich will das JPanel1 auslagern, also diese Daten:
Code:
package test;
import javax.swing.JButton;
import javax.swing.JPanel;

  private JPanel jPanel1 = new JPanel();
  private JButton jButton1 = new JButton();

    jPanel1.setBounds(new Rectangle(25, 30, 335, 205));
    jButton1.setText("jButton1");
    jPanel1.add(jButton1, null);
    this.getContentPane().add(jPanel1, null);
Füge ich das in ein externe Klasse, bekomme ich einige Abhängigsprobleme:
Code:
package gfx.client;

import java.awt.Dimension;

import java.awt.Rectangle;

import javax.swing.JButton;
  import javax.swing.JPanel;


public class Class1 {

    private JPanel jPanel1 = new JPanel();
    private JButton jButton1 = new JButton();



private void jbInit() throws Exception {
      jPanel1.setBounds(new Rectangle(25, 30, 335, 205));
      jButton1.setText("jButton1");
      jPanel1.add(jButton1, null);
      this.getContentPane().add(jPanel1, null);
  }
}

Sooo.
2) ich habe von hier eine lauffähige Klasse bezogen. Diese kann ich mit "new TableFromDatabase" auch aufrufen. Allerdings als Popup-Fenster und nicht integriert, wie ich es gerne hätte.

Versteht ihr mein Anliegen? Sorry dass ich so viele vermeintlich plumpen Frage stelle, aber ich hab das weder im Unterricht, noch in meiner Literatur behandelt...


danke
 
S

SlaterB

Gast
dein zweiter Codeblock ist so nicht korrekt,
du musst wieder eine Klasse definieren mit Klassenattributen, Konstrutoren usw.,

direkt Code in eine andere Datei schreiben und diese dann quasi zur Laufzeit 1:1 rüberkopieren,
das gibt es in Java nicht

> ich habe von hier eine lauffähige Klasse bezogen.

vielleicht erklärt es dir jemand im Detail oder programmier es gar für dich um,
allgemein ist dies aber eher nicht zu erwarten ;)

wenn du mit Swing nicht gut umgehen kannst, was Wochen des Lernens voraussetzt, dann kannst du eben nicht all die schönen Tools benutzen
 

kinglui

Aktives Mitglied
Klar ist der 2. Codeblock nicht korrekt, ich hab auch nur kurz rauskopiert, welche Teile ich ausgelagert bräuchte.
Da ich ja noch gerade in der Lernphase bin, ist es ja klar, dass noch nicht alles läuft. Das war mir auch klar und da ich nicht produktiv arbeite, ist das ja auch in Ordnung so.

Das mir irgendjemand was umprogrammiert, will ich ja gar nicht.
Ich wollte damit nur mein Problem des Auslagerns verdeutlichen.
Ein JLabel soll nicht extern geöffnet werden, sondern da, wo ich es auch intern anordnen würde.

Ciao
 

Michael...

Top Contributor
Wenn ich jetzt eine Klasse auslagere, habe ich den Typen "*.class"
class-Dateien sind die in der java-Datei beschriebenen Klassen in komplirierter Form.

"Auslagern" kann man z.B. so:
Java:
import java.awt.*;
import javax.swing.*;

public class TestClass extends JFrame{
	public TestClass() {
		this.getContentPane().add(new TestSubClass(), BorderLayout.CENTER);
	}
}

class TestSubClass extends JPanel {
	private JButton button;
	public TestSubClass() {
		button = new JButton("Drück mich!");
		this.add(button);
	}
}
Manchmal hilft's auch weiter ein Buch zu lesen.
 

kinglui

Aktives Mitglied
Danke, das sieht schonmal super aus!
Leider kann ich sie ja jetzt aber nicht mehr per Buttonklick ein-/ausblenden, oder ?


Mein Buch les' ich ja auch weiterhin, aber wie gesagt, das Thema wird leider nicht so behandelt, wie ich es gerne hätte.

Ciao
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Compiler-Fehler Not a statement Error Java Basics - Anfänger-Themen 7
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
A switch statement Java Basics - Anfänger-Themen 4
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
A Compiler Fehler - not a statement Java Basics - Anfänger-Themen 2
C java.sql Statement kann nicht geschlossen werden Java Basics - Anfänger-Themen 9
freudianslip if-Statement mit mehreren Zahlenwerten Java Basics - Anfänger-Themen 4
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
J Missing Return Statement Java Basics - Anfänger-Themen 11
J if or statement? Java Basics - Anfänger-Themen 2
P if - Statement erkennt variable nicht. Java Basics - Anfänger-Themen 12
T Not a Statement/Illegal Start of expression bei for Anweisung Java Basics - Anfänger-Themen 6
L Variable in If-Statement initialisieren Java Basics - Anfänger-Themen 4
B Problem bei switch statement Java Basics - Anfänger-Themen 4
M Return statement Java Basics - Anfänger-Themen 4
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
H Compiler-Fehler error not a statement Java Basics - Anfänger-Themen 2
K Input/Output If-Statement wird übersprugen Java Basics - Anfänger-Themen 5
W Return statement in Methode nur bei if-clause Java Basics - Anfänger-Themen 3
C Return statement Java Basics - Anfänger-Themen 10
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
B Not a statement error Java Basics - Anfänger-Themen 2
P fibonacci - do while Statement Logik Fehler Java Basics - Anfänger-Themen 5
T Problem im If-Else-Statement Java Basics - Anfänger-Themen 4
SexyPenny90 Why "Empty Statement"?!? Java Basics - Anfänger-Themen 2
O IF-Statement wird nicht ausgeführt Java Basics - Anfänger-Themen 7
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
M SQL Statement Problem Java Basics - Anfänger-Themen 22
I Methoden Missing return statement; Intervallschachtellung Java Basics - Anfänger-Themen 12
I Problem mit H2-DB Insert-Statement Java Basics - Anfänger-Themen 3
A Assert statement Java Basics - Anfänger-Themen 3
M missing return statement?! Java Basics - Anfänger-Themen 4
J Prepared Statement Out of BondsException Java Basics - Anfänger-Themen 4
P Compiler-Fehler unreachable statement Java Basics - Anfänger-Themen 4
A Missing return-Statement Java Basics - Anfänger-Themen 9
T missing return statement Java Basics - Anfänger-Themen 36
P OOP unreachable statement - Fehler? Java Basics - Anfänger-Themen 3
E missing return statement Java Basics - Anfänger-Themen 6
H not a statement meldungen Java Basics - Anfänger-Themen 12
B Error:not a statement FEHLER bei * Java Basics - Anfänger-Themen 3
F import Statement für Klassen die dem default Package zugeordnet sind? Java Basics - Anfänger-Themen 2
B Not a Statement Problem Java Basics - Anfänger-Themen 8
S Not a Statement? Java Basics - Anfänger-Themen 10
C missing return statement Java Basics - Anfänger-Themen 5
dognose missing Return Statement Java Basics - Anfänger-Themen 4
H Funktion erkennt das return-statement nicht Java Basics - Anfänger-Themen 12
G [Hibernate] Aus SQL-Statement Entities erzeugen Java Basics - Anfänger-Themen 2
M Callable Statement mit Variablen Java Basics - Anfänger-Themen 8
A SQL Create Table Statement Java Basics - Anfänger-Themen 19
T if-then statement soll nur Zahlen zulassen Java Basics - Anfänger-Themen 12
G Missing return Statement Java Basics - Anfänger-Themen 2
S prepared statement delete Java Basics - Anfänger-Themen 5
J Statement an MySQL Datenbank schicken Java Basics - Anfänger-Themen 4
L INSERT Statement geht nicht HILFE! Java Basics - Anfänger-Themen 2
I call to super must be first statement in constructor Java Basics - Anfänger-Themen 3
L IF Bedingung in SELECT Statement? Java Basics - Anfänger-Themen 3
R "missing return statement"? Java Basics - Anfänger-Themen 2
S prepared statement Java Basics - Anfänger-Themen 10
G SQL Statement Java Basics - Anfänger-Themen 4
J Variable Werte in einem SQL Statement? Java Basics - Anfänger-Themen 8
G Inhalt Textfield in SQL Statement klappt nicht. Java Basics - Anfänger-Themen 2
F Missung Return Statement Java Basics - Anfänger-Themen 10
G Button und SQL-Statement ausführen Java Basics - Anfänger-Themen 6
H Variable zuweisung in einem If-Statement Java Basics - Anfänger-Themen 3
J return- Statement Java Basics - Anfänger-Themen 3
G missing return statement Java Basics - Anfänger-Themen 5
S Problem mit if-Statement Java Basics - Anfänger-Themen 5
G Array und switch-Statement Java Basics - Anfänger-Themen 4
R kurzes if-then-else statement Java Basics - Anfänger-Themen 8
M missing return statement Java Basics - Anfänger-Themen 4
M iText Zelleninhalt formatieren Java Basics - Anfänger-Themen 2
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
S String richtig formatieren Java Basics - Anfänger-Themen 2
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
B String nach HTML formatieren Java Basics - Anfänger-Themen 9
D Text als Code in java-forum.com formatieren. Wie ? Java Basics - Anfänger-Themen 3
B Date formatieren Java Basics - Anfänger-Themen 13
Thallius Date für DatePicker formatieren aber wie? Java Basics - Anfänger-Themen 9
C Formatieren in Java Java Basics - Anfänger-Themen 2
P String formatieren Java Basics - Anfänger-Themen 4
C Input/Output Magisches Quadrat Rechts Formatieren Java Basics - Anfänger-Themen 4
S Ausgabe von Text Formatieren Java Basics - Anfänger-Themen 6
J Ausgabe auf der Konsole formatieren. Java Basics - Anfänger-Themen 6
F Double neu formatieren mit NumberFormat Java Basics - Anfänger-Themen 2
G Formatieren von Gleitkommazahlen Java Basics - Anfänger-Themen 4
A Datum formatieren Java Basics - Anfänger-Themen 6
B Ausgabe formatieren Java Basics - Anfänger-Themen 3
G JTextArea: nur bestimmte Zeilen anders formatieren Java Basics - Anfänger-Themen 7
O Tabelle Formatieren mit system.out.format Java Basics - Anfänger-Themen 11
A Datum formatieren Java Basics - Anfänger-Themen 8
E Code parsen/ formatieren Java Basics - Anfänger-Themen 3
R Datum formatieren Java Basics - Anfänger-Themen 18
W String datum formatieren Java Basics - Anfänger-Themen 2
T Formatieren von Zellen einer PdfPTable mit IText Java Basics - Anfänger-Themen 3
C JTable formatieren Java Basics - Anfänger-Themen 2
S String repräsentation eines XML-Files für Textarea formatieren. Java Basics - Anfänger-Themen 2
B Formatieren des Resultates einer for-Schleife Java Basics - Anfänger-Themen 2
D Ausgabe sauber formatieren *bitte nochmal reinschaun* Java Basics - Anfänger-Themen 7
T Text aus Word in Excel formatieren Java Basics - Anfänger-Themen 3
J String-Formatieren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben