Wer wäre bereit mir zu helfen?Programmierstil graphische Obf

Status
Nicht offen für weitere Antworten.

firestone

Bekanntes Mitglied
Hallo Leute
da bei mir in der Ausbildung kaum einer Zeit hat über mein Projekt zu gucken habe ich keine Ahnung ob dies gut oder schlecht programmiert ist.

Wer wäre bereit ein Auge drauf zu werfen und mir ein paar Tips zu geben ????



Danke im vorraus
 

firestone

Bekanntes Mitglied
ok sind zwar eineige klassen aber gut werde mit den wichtigsten anfangen


Klasse Mainprogramm
Code:
package schub.main;

import com.mysql.jdbc.Connection;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import schub.io.InPut;
import schub.main.gui.*;
import schub.sql.SQLCommand;
import schub.sql.SQL_InPut;
import schub.sql.Sql;

/**
 * Hauptprogramm die graphische Oberfl&che
 * 
 */

public class Mainprogramm extends JFrame implements ActionListener {

	// Auswahbox f&r den Typ des Versuchs;
	private JComboBox typ_box;

	// normale Buttons
	// Zum abschicken des Import befehls
	private JButton werte_eintr;

	// Panels
	// F&r Buttons
	private JPanel btn_panel;

	// F&r Abfragen
	private JPanel abfr_panel;

	// F&r Datenbankabfrage
	private SchubAbfragePanel dbabfr_panel;

	// Panel auf dem das Ergebnis der Datenbankabfrage ausgegeben wird
	private JPanel erg_panel;

	// Tabelle zum ausgeben der Werte
	private JTable werte_tbl;

	// Variablen
	// F&r die MenuBar
	JMenuBar hauptmenu;

	// F&r den Typ der Versuchsreihe
	private int typ;

	// F&r die Abfrage an die Datenbank
	int neue_id;

	int alte_id;

	String tbl;

	// F&r die Datenbankverbidnung die aufgebaut werden muss
	private Connection conn;

	// F&r den Pfad der Eingabedatei
	private String eingabeDatei;

	// Hashmap Objekt
	HashMap<String, String> datenbestand;

	/**
	 * Konstruktor
	 * 
	 */
	public Mainprogramm() {
		super("Auswahlfenster");
		// errechnet automatisch die Gr&ße des Fensters anhand der
		// Bildschirmgr&ße
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

		// setzt die Gr&ße auf 800*600
		this.setSize(800, 600);
		// positoniert das Fenster
		setLocation((d.width - getSize().width) / 2,
				(d.height - getSize().height) / 2);
		// setzt das Layout des Hauptfensters auf BorderLayout
		this.getContentPane().setLayout(new BorderLayout());
		// wird Fenster geschlossen wird das komplette Programm beendet
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// Fenster ist nicht in der Gr&ße ver&nderbar
		this.setResizable(false);

		hauptmenu = initMenuBar();
		this.setJMenuBar(hauptmenu);
		datenbestand = set_Datenbestand();
		init_buttons();
		init_comboBox();
		init_panels();
		this.setVisible(true);
	}

	/**
	 * Methode die die Panels initalisiert, auf die Contentpane einf&gt und
	 * die wichtigsten Komponenten festlegt: z.B Layout
	 * 
	 */
	private void init_panels() {
		btn_panel = new JPanel();
		btn_panel.setLayout(new FlowLayout());
		this.getContentPane().add(btn_panel, BorderLayout.SOUTH);
		abfr_panel = new JPanel();
		abfr_panel.setLayout(new BorderLayout());
		this.getContentPane().add(abfr_panel, BorderLayout.CENTER);
		btn_panel.setLayout(new FlowLayout());
		dbabfr_panel = new SchubAbfragePanel(this, datenbestand);
		erg_panel = new JPanel();
		erg_panel.setLayout(new BorderLayout());
	}

	/**
	 * Methode die die Buttons initalisiert, und auf die Contenpane einf&gt
	 */
	private void init_buttons() {
		werte_eintr = new JButton("Werte eintragen");
		werte_eintr.setActionCommand("WERTE EINTRAGEN");
		werte_eintr.addActionListener(this);
	}

	/**
	 * Methode die die Auswahlbox f&r den Typ der Versuchsreihe
	 * initalisiert und auf die Contentpane einf&gt
	 * 
	 */
	private void init_comboBox() {
		typ_box = new JComboBox(new Object[] { "0=mit Buegel mit Vorspannung",
				"1=mit Buegel ohne Vorspannung",
				"2=ohne Buegel mit Vorspannung",
				"3=ohne Buegel ohne Vorspannung" });
	}

	private void init_tabellen(Vector werte, Vector namen) {
		DefaultTableModel defaultTableModel = new DefaultTableModel();
		defaultTableModel.setColumnIdentifiers(namen);
		defaultTableModel.setDataVector(werte, namen);
		werte_tbl = new JTable(defaultTableModel);

		TableColumn column = null;
		for (int i = 0; i < werte_tbl.getColumnCount(); i++) {
			column = werte_tbl.getColumnModel().getColumn(i);
			column.setPreferredWidth(100); // sport column is bigger
		}

		werte_tbl.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
	}

	/**
	 * 
	 * @return Objekt vom Typ SchubmenuBar
	 */
	private JMenuBar initMenuBar() {
		return new SchubMenuBar(this);
	}

	/**
	 * 
	 * @return Objekt vom Typ AbfrageDaten
	 */
	private AbfrageDaten set_Datenbestand() {
		return new AbfrageDaten();
	}

	/**
	 * Methode die alle wichtigen Aktionen an Hand der ActionCommands definiert
	 */
	public void actionPerformed(ActionEvent ev) {
		String action = ev.getActionCommand();
		if (action.equals("WERTE_EINTRAGEN")) {
			// erzeugt ein Objekt der Klasse einlesen
			typ = typ_box.getSelectedIndex() + 1;
			if (eingabeDatei != null && conn != null) {
				InPut einlesen = new InPut(typ, eingabeDatei, conn);
			} else {
				JOptionPane.showMessageDialog(this,
						"Keine Verbindung zur Datenbank aufgebaut");
			}
		} else if (action.equals("IMPORT")) {
			eingabeDatei = SchubMenuBar.oeffnen(eingabeDatei);
			if (eingabeDatei != null) {
				btn_panel.add(werte_eintr);
				abfr_panel.add(typ_box, BorderLayout.NORTH);
				this.validate();
				this.repaint();
			}
		} else if (action.equals("EXIT")) {
			System.exit(0);
		} else if (action.equals("ABFRAGE")) {
			// dbabfr_panel = new SchubAbfragePanel(this,datenbestand);
			abfr_panel.add(dbabfr_panel);
			this.validate();
			this.repaint();

		} else if (action.equals("CONNECT")) {
			conn = (Connection) Sql.verbindungs_Aufbau(conn);

		} else if (action.equals("DISCONNECT")) {
			conn = (Connection) Sql.verbindung_trennen(conn);
		}
		// Command f&r SchubAbfragePanel
		else if (action.equals("ABSCHICKEN")) {
			String abfrage = "";
			dbabfr_panel.get_Werte();
			neue_id = Integer.parseInt(datenbestand.get("neue_id"));
			alte_id = Integer.parseInt(datenbestand.get("alte_id"));
			typ = Integer.parseInt(datenbestand.get("typ"));
			tbl = datenbestand.get("tabelle");
			if (neue_id != 0 && alte_id != 0) {
				JOptionPane
						.showMessageDialog(
								this,
								"Sie können entweder nach einer alten ID oder nach einer neuen ID suchen, aber nicht nach beidem ");
			}
			if (neue_id != 0 && alte_id == 0) {
				// abfrage = SQLCommand.db_Abfrage(neue_id, 0);
				abfrage = SQLCommand.db_Abfrage_test(neue_id, 0, tbl);
			}
			if (alte_id != 0 && neue_id == 0) {
				// abfrage = SQLCommand.db_Abfrage(alte_id, typ);
				abfrage = SQLCommand.db_Abfrage_test(alte_id, typ, tbl);
				SQL_InPut get_new = new SQL_InPut(conn, abfrage);
				neue_id = get_new.neue_id();
				abfrage = SQLCommand.db_Abfrage_test(neue_id, 0, tbl);
			}
			SQL_InPut ausgeben = new SQL_InPut(conn, abfrage);
			abfr_panel.remove(dbabfr_panel);
			Vector namen = ausgeben.spalten_namen();
			Vector werte = ausgeben.werte_abfragen();
			init_tabellen(werte, namen);
			erg_panel.add(new JScrollPane(werte_tbl), BorderLayout.CENTER);
			abfr_panel.add(erg_panel);
			this.validate();
			this.repaint();
		}

	}

	public static void main(String[] args) {
		Mainprogramm testen = new Mainprogramm();
	}
}


Klasse SchubAbfragePanel
Code:
package schub.main.gui;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;



/**
 * Klasse f&r das AbfragePanel (DBAbfrage)
 * 
 */
public class SchubAbfragePanel extends JPanel {

	
	private GridBagLayout layout;
	private GridBagConstraints gbc;
	// Variablen f& die einzelnen Komponenten
	private JLabel text_id_neu;

	private JLabel text_id_alt;

	private JLabel text_id_alt2;
	
	private JLabel txt_tbl;
	
	private JLabel text_id_info;

	private JTextField txt_id_neu;
	
	private JTextField txt_id_alt;

	private JButton ok_btn;

	// Auswahbox f&r den Typ des Versuchs
	private JComboBox typ_box;

	// Auswahlbox f&r die Tabelle die abgefragt werden soll
	private JComboBox tbl_box;

	private ActionListener meinListener;

	private String neue_id;

	private String alte_id;

	private String typ;

	// Hashmap f&r das abspeichern der Daten aus dem Formular
	private HashMap<String, String> meineDaten;

	/**
	 * Private innere Klasse die das Document Event h&ndelt
	 * 
	 * @author Natalie Hoyk
	 * @version 1.0
	 */
	private class IDNeuDocumentListener implements DocumentListener {
		/**
		 * Wird beim entfernen von Text aufgerufen. Wurde der komplette Text
		 * gel&scht, wird die ComboBox typ_box deaktiviert.
		 * 
		 * @param de
		 */
		public void removeUpdate(final DocumentEvent de) {
			if ((de.getLength() > txt_id_alt.getText().length())
					&& txt_id_alt.hasFocus()) {
				typ_box.setEnabled(false);
			}
		}

		/**
		 * Wird beim einf&gen von Text aufgerufen. Hier wird die ComboBox
		 * typ_box automatisch aktiviert.
		 * 
		 * @param de
		 */
		public void insertUpdate(final DocumentEvent de) {
			if (!typ_box.isEnabled()) {
				typ_box.setEnabled(true);
			}
		}

		public void changedUpdate(final DocumentEvent arg0) {
		}
	}

	/**
	 * Konstruktor
	 * 
	 * @param action
	 *            Action Listener des Hauptprogramms
	 * @param data
	 *            Haspmap in die die Werte abgespeichert werden sollen
	 */
	public SchubAbfragePanel(ActionListener action, HashMap data) {
		layout = new GridBagLayout();
		this.setLayout(layout);
		gbc = new GridBagConstraints();
		gbc.fill = GridBagConstraints.NONE;
		gbc.insets =new Insets(1,1,1,1);
		gbc.anchor = GridBagConstraints.WEST;
		gbc.weighty=1.0;
		meinListener = action;
		meineDaten = data;
		
		init_tblBox();
		init_labels();
		init_textFelder();
		init_buttons();
		init_ComboBox();
		
	}

	/**
	 * Methode f&r die Labels
	 * 
	 */
	private void init_labels() {
		gbc.gridx=0;
		gbc.gridy=0;
		gbc.gridheight=1;
		txt_tbl = new JLabel("Bitte wählen sie die Tabelle, die sie abfragen wollen aus: ");
		layout.setConstraints(txt_tbl, gbc);
		this.add(txt_tbl);
		
		gbc.gridx=0;
		gbc.gridy=1;
		gbc.gridheight=1;
		text_id_info = new JLabel(
				"Wählen sie bitte aus nach welcher ID sie suchen wollen:");
		layout.setConstraints(text_id_info, gbc);
		this.add(text_id_info);
		
		gbc.gridx=0;
		gbc.gridy=2;
		gbc.gridheight=1;
		text_id_neu = new JLabel("Nach neuer ID:");
		layout.setConstraints(text_id_neu, gbc);
		this.add(text_id_neu);
		gbc.gridx=0;
		gbc.gridy=3;
		gbc.gridheight=1;
		text_id_alt = new JLabel("Nach alter ID:");
		layout.setConstraints(text_id_alt, gbc);
		this.add(text_id_alt);
		gbc.gridx=0;
		gbc.gridy=4;
		gbc.gridheight=1;
		text_id_alt2 = new JLabel(
				"Wenn sie nach einer alten ID suchen wollen geben sie bitte auch den Typ des Versuchs an: ");
		layout.setConstraints(text_id_alt2, gbc);
		this.add(text_id_alt2);
	}

	/**
	 * Methode f&r die Textfelder
	 * 
	 */
	private void init_textFelder() {
		gbc.gridx=1;
		gbc.gridy=2;
		gbc.gridheight=1;
		txt_id_neu = new JTextField(10);
		layout.setConstraints(txt_id_neu,gbc);
		this.add(txt_id_neu);
		gbc.gridx=1;
		gbc.gridy=3;
		gbc.gridheight=1;
		txt_id_alt = new JTextField(10);
		layout.setConstraints(txt_id_alt, gbc);
		this.add(txt_id_alt);
		txt_id_alt.getDocument().addDocumentListener(
				new IDNeuDocumentListener());

	}

	
	
	/**
	 * Methode f&r die Buttons
	 * 
	 */
	private void init_buttons() {
		gbc.gridx=1;
		gbc.gridy=5;
		gbc.gridheight=1;
		
		ok_btn = new JButton("Abschicken");
		ok_btn.addActionListener(meinListener);
		ok_btn.setActionCommand("ABSCHICKEN");
		layout.setConstraints(ok_btn, gbc);
		this.add(ok_btn);
	}

	/**
	 * Methode f&r die Combo Box zum ausw&hlen des Typs
	 * 
	 */
	private void init_ComboBox() {
		gbc.gridx=1;
		gbc.gridy=4;
		gbc.gridheight=1;
		// erzeugt die Auswahlbox TypBox
		typ_box = new JComboBox(new Object[] { "0=mit Buegel mit Vorspannung",
				"1=mit Buegel ohne Vorspannung",
				"2=ohne Buegel mit Vorspannung",
				"3=ohne Buegel ohne Vorspannung" });
		typ_box.setEnabled(false);
		layout.setConstraints(typ_box, gbc);
		this.add(typ_box);
	}

	/**
	 * Methode f&r die Combo Box zum ausw&hlen der Tabelle
	 * 
	 */
	private void init_tblBox() {
		gbc.gridx=1;
		gbc.gridy=0;
		gbc.gridheight=1;
		tbl_box = new JComboBox(new String[] { "Betondruckfestigkeit",
				"Betonzugfestigkeit", "Buegelbewehrung",
				"Kontrolle_Biegebruch", "Laengsbewehrung", "Laststellung",
				"Normalkraft", "Querkraft_PT", "Querschnitte", "Rohdichte",
				"Spannstahl", "Verankerung", "Versuch", "Vorspannung" });
		layout.setConstraints(tbl_box, gbc);
		this.add(tbl_box);
	}

	// Begin der Getter Methoden
	/**
	 * Methode die die Id ausliest aus dem Textfeld und danach in eine Hashmap
	 * einf&gt
	 */
	public void get_neue_id() {
		neue_id = txt_id_neu.getText();
		if (neue_id.equals("")) {
			neue_id = "0";
		} else {
			try {
				Integer.parseInt(neue_id);
			} catch (NumberFormatException ex) {
				JOptionPane
						.showMessageDialog(this,
								"sie haben keine gültige ID eingegeben bitte versuchen sie es erneut");
			}
		}
		/*
		 * String tmp = txt_id_neu.getText(); if(tmp.equals("")){ neue_id=0;
		 * }else { neue_id = Integer.parseInt(tmp); }
		 * System.out.println(neue_id);
		 */
		meineDaten.put("neue_id", neue_id);
	}

	private void get_alte_id() {
		alte_id = txt_id_alt.getText();
		if (alte_id.equals("")) {
			alte_id = "0";
		} else {
			try {
				Integer.parseInt(alte_id);
			} catch (NumberFormatException ex) {
				JOptionPane
						.showMessageDialog(this,
								"sie haben keine gültige ID eingegeben bitte versuchen sie es erneut");
			}
		}
		/*
		 * String tmp = txt_id_alt.getText(); if(tmp == ""){ alte_id=0; }else {
		 * alte_id = Integer.parseInt(tmp); }
		 */
		meineDaten.put("alte_id", alte_id);
	}

	private void get_typ() {
		int tmp = typ_box.getSelectedIndex() + 1;
		typ = "" + tmp;
		// System.out.println(typ);
		meineDaten.put("typ", typ);
	}

	private void get_tbl() {
		String tbl = "";
		int tblid = tbl_box.getSelectedIndex();
		switch (tblid) {
		case 0:
			tbl = "Betondruckfestigkeit";
			break;
		case 1:
			tbl = "Betonzugfestigkeit";
			break;
		case 2:
			tbl = "Buegelbewehrung";
			break;
		case 3:
			tbl = "Kontrolle_Biegebruch";
			break;
		case 4:
			tbl = "Laengsbewehrung";
			break;
		case 5:
			tbl = "Laststellung";
			break;
		case 6:
			tbl = "Normalkraft";
			break;
		case 7:
			tbl = "Querkraft_PT";
			break;
		case 8:
			tbl = "Querschnitte";
			break;
		case 9:
			tbl = "Rohdichte";
			break;
		case 10:
			tbl = "Spannstahl";
			break;
		case 11:
			tbl = "Verankerung";
			break;
		case 12:
			tbl = "Versuch";
		case 13:
			tbl = "Vorspannung";
			break;
		}
		meineDaten.put("tabelle", tbl);
	}

	/**
	 * gesammelter Aufruf aller Getter-Methoden
	 * 
	 */
	public void get_Werte() {
		get_neue_id();
		get_alte_id();
		get_typ();
		get_tbl();
	}
}


Klasse SQL
Code:
package schub.sql;

import java.sql.*;

import javax.swing.JOptionPane;
import javax.swing.JPasswordField;

/**
 * Datenbankverbindung an eine MYSQL Datenbank via JDBC Die Klasse stellt zwei
 * Methoden bereit eine f&r den Verbindungsaufbau und eine f&r den
 * Verbindungsabbau
 * 
 */
public class Sql {
	// Klassenvariablen
	static String passwort = "";

	static String hostname;

	static String port;

	static String dbname;

	static String benutzer;

	static JPasswordField passwortField;

	/**
	 * leerer Standardkonstruktor
	 */
	public Sql() {
	}

	/**
	 * Methode die eine Verbindung mit einer mysql-Datenbank herstellt
	 * 
	 * @param conn
	 *            Verbindung die aufgebaut werden soll
	 * @return R&ckgabewert ist eine bestehende Verbindung zur
	 *         gew&nschten Datenbank
	 */
	public static Connection verbindungs_Aufbau(Connection conn) {
		// Dialoge f&r die Abfrage der ben&tigten Komponenten
		// JOptionPane ist eine Klasse in Java die viele M&glichkeiten
		// bietet
		// kleine Informationsdialoge zu schreiben

		// Abfrage der einzelnen Komponenten
		hostname = JOptionPane
				.showInputDialog("Bitte geben sie den Hostnamen ein:");
		port = JOptionPane.showInputDialog("Bitte geben sie den Port ein:");
		dbname = JOptionPane
				.showInputDialog("Bitte geben sie den Datenbanknamen ein:");
		benutzer = JOptionPane
				.showInputDialog("Bitte geben sie ihren User Namen ein:");
		passwortField = new JPasswordField(10);
		passwortField.setEchoChar('#');
		JOptionPane.showMessageDialog(null, passwortField,
				"Bitte geben sie ihr Passwort ein:", JOptionPane.OK_OPTION);
		char[] password = passwortField.getPassword();
		for (int i = 0; i < password.length; i++) {
			passwort += password[i];
		}
		try {
			// System.out.println("* Treiber laden");
			Class.forName("com.mysql.jdbc.Driver").newInstance();
		} catch (Exception e) {
			JOptionPane
					.showMessageDialog(null,
							"Der Treiber  konnte nicht geladen werden bitte versuchen sie es erneut");
			// System.err.println("Unable to load driver.");
			// e.printStackTrace();
		}
		try {
			// System.out.println("* Verbindung aufbauen");
			String url = "jdbc:mysql://" + hostname + ":" + port + "/" + dbname;
			// Verbindungsaufbau
			conn = DriverManager.getConnection(url, benutzer, passwort);
			// System.out.println("Verbindung aufgebaut");
		} catch (Exception e) {
			int response = JOptionPane
					.showConfirmDialog(
							null,
							"Es konnte keine Verbindung zur gewünschen Datenbank aufgebaut werden, bitte versuchen sie es erneut",
							benutzer, JOptionPane.YES_NO_OPTION);
			switch (response) {
			case JOptionPane.YES_OPTION:
				verbindungs_Aufbau(conn);
			case JOptionPane.NO_OPTION:
				return null;

			}

			/*
			 * JOptionPane.showMessageDialog(null,"Es konnte keine Verbindung
			 * zur gewünschen Datenbank aufgebaut werden, bitte versuchen sie es
			 * erneut");
			 */

			// System.err.println("Unable to connect.");
			// e.printStackTrace();
		}
		return conn;
	}

	/**
	 * Methode die die Verbindung zur Datenbank trennt
	 * 
	 * @param conn
	 *            bestehende Datenbankverbindung die beendet werden soll
	 */
	public static Connection verbindung_trennen(Connection conn) {
		try {
			// System.out.println("Verbindung wird getrennt");
			// Verbindungsabbau
			conn.close();
			JOptionPane
					.showMessageDialog(null, "Dier Verbindung wurde beendet");
		} catch (Exception e) {
			JOptionPane
					.showMessageDialog(
							null,
							"Die Verbindung konnte nicht geschlossen werden da eventuell keine Verbindung besteht versuchen sie es bitte erneut");
			// System.err.println("Unable to close connection.");
			// e.printStackTrace();
		}
		return conn;
	}

}

Klasse SQL_Input
Code:
package schub.sql;

import com.mysql.jdbc.ResultSetMetaData;
import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import schub.versuch.Versuch;

/**
 * Klasse die die Werte eines Objektes der Klasse Versuch in die Datenbank
 * eintr&gt
 * 
 */
public class SQL_InPut {
	// Variablen
	// f&r die Connection
	Connection conn = null;

	Statement statement;

	ResultSet result;

	ResultSetMetaData rs;

	Versuch versuch;

	int typ;

	String db_abfrage;

	Hashtable versuche;

	/**
	 * Konstruktor bekommt eine Hashtable &bergeben in der Objekte des Typs
	 * Versuch abgespeichert werden sollen
	 * 
	 * @param versuche
	 *            Hashtable
	 * @param typ
	 *            Typ der Versuchsreihe
	 * @param startwert
	 *            Startwert bei dem die Versuchsnummern beginnen (von uns selber
	 *            vergeben)
	 */

	public SQL_InPut(Hashtable versuche, int typ, int startwert, Connection conn) {
		this.typ = typ;
		this.versuche = versuche;
		// Verbindung aufbauen
		this.conn = conn;
		Strings_erzeugen(conn, startwert);
	}

	public SQL_InPut(Connection conn, String abfrage) {
		this.conn = conn;
		this.db_abfrage = abfrage;
	}

	/**
	 * Methode die die Mysql Befehle erzeigt um diese in der Methode
	 * werte_eintragen verarbeiten zu k&nnen
	 * 
	 * @param conn
	 *            aufgebaute Datenbankverbindung
	 * @param start
	 *            startwert der Versuchsid
	 */
	public void Strings_erzeugen(Connection conn, int start) {
		// Startwert bei dem die Versuchsnummern beginnen
		int id = hole_start_id(conn);
		// Holt sich nacheinander die Objekte vom Typ Versuch mit der Nummer
		// start_w aus der Hashtable raus
		for (int i = start, j = 0; i <= versuche.size(); i++, j++) {
			Object o = versuche.get("Versuch" + i);
			versuch = (Versuch) o;

			if (typ == Versuch.B0V0) {
				// System.out.println(SQLCommand.versuch(0, 0,
				// versuch.versuch));
				werte_eintragen(conn, SQLCommand.versuch(0, 0, versuch.versuch));
				werte_eintragen(conn, SQLCommand.querschnitte(0, 0,
						versuch.querschnitte, id + j));
				werte_eintragen(conn, SQLCommand.laststellung(0, 0,
						versuch.laststellung, id + j));
				werte_eintragen(conn, SQLCommand.laengsbewehrung(0, 0,
						versuch.laengsbewehrung, id + j));
				werte_eintragen(conn, SQLCommand.betondruckfestigkeit(0, 0,
						versuch.betondruckfestigkeit, id + j));
				werte_eintragen(conn, SQLCommand.rohdichte(0, 0,
						versuch.rohdichte, id + j));
				werte_eintragen(conn, SQLCommand.betonzugfestigkeit(0, 0,
						versuch.betonzugfestigkeit, id + j));
				werte_eintragen(conn, SQLCommand.kontrolle_biegebruch(0, 0,
						versuch.kontrolle_biegebruch, id + j));
				werte_eintragen(conn, SQLCommand.verankerung(0, 0,
						versuch.verankerung, id + j));
				werte_eintragen(conn, SQLCommand.laengsbewehrung_update(0, 0,
						versuch.laststellung[3], id + j));
				werte_eintragen(conn, SQLCommand.versuch_update(0, 0,
						versuch.kontrolle_biegebruch[0], id + j));

			} else if (typ == Versuch.B0V1) {
				werte_eintragen(conn, SQLCommand.versuch(0, 1, versuch.versuch));
				werte_eintragen(conn, SQLCommand.querschnitte(0, 1,
						versuch.querschnitte, id + j));
				werte_eintragen(conn, SQLCommand.laststellung(0, 1,
						versuch.laststellung, id + j));
				werte_eintragen(conn, SQLCommand.laengsbewehrung(0, 1,
						versuch.laengsbewehrung, id + j));
				werte_eintragen(conn, SQLCommand.spannstahl(0, 1,
						versuch.spannstahl, id + j));
				werte_eintragen(conn, SQLCommand.vorspannung(0, 1,
						versuch.vorspannung, id + j));
				werte_eintragen(conn, SQLCommand.normalkraft(0, 1,
						versuch.normalkraft, id + j));
				werte_eintragen(conn, SQLCommand.betondruckfestigkeit(0, 1,
						versuch.betondruckfestigkeit, id + j));
				werte_eintragen(conn, SQLCommand.betonzugfestigkeit(0, 1,
						versuch.betonzugfestigkeit, id + j));
				werte_eintragen(conn, SQLCommand.kontrolle_biegebruch(0, 1,
						versuch.kontrolle_biegebruch, id + j));
				werte_eintragen(conn, SQLCommand.verankerung(0, 1,
						versuch.verankerung, id + j));
				werte_eintragen(conn, SQLCommand.laengsbewehrung_update(0, 1,
						versuch.laststellung[4], id + j));

			} else if (typ == Versuch.B1V0) {
				werte_eintragen(conn, SQLCommand.versuch(1, 0, versuch.versuch));
				werte_eintragen(conn, SQLCommand.querschnitte(1, 0,
						versuch.querschnitte, id + j));
				werte_eintragen(conn, SQLCommand.laststellung(1, 0,
						versuch.laststellung, id + j));
				werte_eintragen(conn, SQLCommand.laengsbewehrung(1, 0,
						versuch.laengsbewehrung, id + j));
				werte_eintragen(conn, SQLCommand.druckbewehrung(1, 0,
						versuch.druckbewehrung, id + j));
				werte_eintragen(conn, SQLCommand.buegelbewehrung(1, 0,
						versuch.buegelbewehrung, id + j));
				werte_eintragen(conn, SQLCommand.betondruckfestigkeit(1, 0,
						versuch.betondruckfestigkeit, id + j));
				werte_eintragen(conn, SQLCommand.betonzugfestigkeit(1, 0,
						versuch.betonzugfestigkeit, id + j));
				werte_eintragen(conn, SQLCommand.mechanischerBewehrungsgrad(1,
						0, versuch.mechanischer_bewehrungsgrad, id + j));
				werte_eintragen(conn, SQLCommand.kontrolle_biegebruch(1, 0,
						versuch.kontrolle_biegebruch, id + j));
				werte_eintragen(conn, SQLCommand.querkraft_pt(1, 0,
						versuch.querschnitte_pt, id + j));
				werte_eintragen(conn, SQLCommand.verankerung(1, 0,
						versuch.verankerung, id + j));
				werte_eintragen(conn, SQLCommand.laengsbewehrung_update(1, 0,
						versuch.laststellung[5], id + j));
				werte_eintragen(conn, SQLCommand.rohdichte_update(1, 0,
						versuch.betondruckfestigkeit[12], id + j));

			} else if (typ == Versuch.B1V1) {
				werte_eintragen(conn, SQLCommand.versuch(1, 1, versuch.versuch));
				werte_eintragen(conn, SQLCommand.querschnitte(1, 1,
						versuch.querschnitte, id + j));
				werte_eintragen(conn, SQLCommand.laststellung(1, 1,
						versuch.laststellung, id + j));
				werte_eintragen(conn, SQLCommand.laengsbewehrung(1, 1,
						versuch.laengsbewehrung, id + j));
				werte_eintragen(conn, SQLCommand.druckbewehrung(1, 1,
						versuch.druckbewehrung, id + j));
				werte_eintragen(conn, SQLCommand.spannstahl(1, 1,
						versuch.spannstahl, id + j));
				werte_eintragen(conn, SQLCommand.vorspannung(1, 1,
						versuch.vorspannung, id + j));
				werte_eintragen(conn, SQLCommand.normalkraft(1, 1,
						versuch.normalkraft, id + j));
				werte_eintragen(conn, SQLCommand.buegelbewehrung(1, 1,
						versuch.buegelbewehrung, id + j));
				werte_eintragen(conn, SQLCommand.betondruckfestigkeit(1, 1,
						versuch.betondruckfestigkeit, id + j));
				werte_eintragen(conn, SQLCommand.betonzugfestigkeit(1, 1,
						versuch.betonzugfestigkeit, id + j));
				werte_eintragen(conn, SQLCommand.mechanischerBewehrungsgrad(1,
						1, versuch.mechanischer_bewehrungsgrad, id + j));
				werte_eintragen(conn, SQLCommand.kontrolle_biegebruch(1, 1,
						versuch.kontrolle_biegebruch, id + j));
				werte_eintragen(conn, SQLCommand.verankerung(1, 1,
						versuch.verankerung, id + j));
				werte_eintragen(conn, SQLCommand.querkraft_pt(1, 1,
						versuch.querschnitte_pt, id + j));
				werte_eintragen(conn, SQLCommand.rohdichte_update(1, 1,
						versuch.betondruckfestigkeit[11], id + j));
			}
		}

	}

	/**
	 * Holt sich die letzte vergebene id der Tabelle Versuch aus der Datenbank
	 * und erzeugt die Startid f&r den neuen Versuch
	 * 
	 * @param conn
	 *            aufgebaute Datenbankverbindung
	 * @return die neue id
	 */
	public int hole_start_id(Connection conn) {
		String vers_id = "SELECT versuch_id FROM Versuch;";
		int alte_id = 1;
		try {
			Statement statement = conn.createStatement();
			ResultSet res = statement.executeQuery(vers_id);

			if (!res.next()) {
				alte_id = 0;
			} else {
				while (res.next()) {
					alte_id += 1;
				}
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return alte_id + 1;

	}

	/**
	 * Tr&gt die Werte in die Datenbank ein
	 * 
	 * @param conn
	 *            aufgebaute Datenbankverbindung
	 * @param str
	 *            Mysql Befehl
	 */
	public void werte_eintragen(Connection conn, String str) {
		try {
			Statement statement = conn.createStatement();
			int result = statement.executeUpdate(str);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public Vector spalten_namen() {
		// System.out.println(str);
		Vector<String> namen = null;

		try {
			statement = conn.createStatement();
			result = statement.executeQuery(db_abfrage);
			rs = (ResultSetMetaData) result.getMetaData();
			int numCols = rs.getColumnCount();
			namen = new Vector<String>();
			// namen = new String[numCols];
			for (int i = 1; i <= numCols; i++) {
				// int ct = rs.getColumnType(i); //
				namen.add(rs.getColumnName(i));
				// String ctn = rs.getColumnTypeName(i);
				// System.out.println("Spalte Nr" + i + ": "
				// + namen[i-1] + " of type "
				// + ctn + "(JDBC-Typ: " + ct + ")");
				// System.out.print(namen[i - 1] + "\t\t");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return namen;

	}

	public Vector werte_abfragen() {
		Vector ret = new Vector();
		Vector<String> werte = null;

		try {
			statement = conn.createStatement();

			result = statement.executeQuery(db_abfrage);
			rs = (ResultSetMetaData) result.getMetaData();
			int numCols = rs.getColumnCount();
			werte = new Vector<String>();
			while (result.next()) {
				for (int k = 1; k <= numCols; k++) {
					werte.add(result.getString(k));
				}

				// System.out.println(result.getString(1));
				// System.out.println(result.getString(6));
				// System.out.println(result.getString(4));

				// String autor = result.getString("Autoren");
				// System.out.println(autor);

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		ret.add(werte);
		return ret;

	}

	public int neue_id() {
		System.out.println(db_abfrage);
		int id = 0;
		try {
			statement = conn.createStatement();
			result = statement.executeQuery(db_abfrage);
			while (result.next()) {
				id = result.getInt("versuch_id");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return id;
	}
}


das waren so die Hauptklassen des Programms [/b]
 
S

SlaterB

Gast
keine Unterstriche irgendwo, CodeConventions mal lesen
(oder vorher sagen, dass diese ignoriert werden sollen)

einheitliche Sprechweise,
getX, setX,
also auch
erzeugeStrings
statt
Strings_erzeugen


wenn SQL_InPut Connection als Exemplarvariable hat, wieso wird das dann ständig als Parameter herumgereicht, auch innerhalb der Klasse?

--------

zu
Code:
 werte_eintragen(conn, SQLCommand.versuch(1, 0, versuch.versuch)); 
            werte_eintragen(conn, SQLCommand.querschnitte(1, 0, 
                  versuch.querschnitte, id + j)); 
            werte_eintragen(conn, SQLCommand.laststellung(1, 0, 
                  versuch.laststellung, id + j)); 
            werte_eintragen(conn, SQLCommand.laengsbewehrung(1, 0, 
                  versuch.laengsbewehrung, id + j)); 
            werte_eintragen(conn, SQLCommand.druckbewehrung(1, 0, 
                  versuch.druckbewehrung, id + j)); 
            werte_eintragen(conn, SQLCommand.buegelbewehrung(1, 0, 
                  versuch.buegelbewehrung, id + j)); 
...
statt dass 4 oder mehr mal zu schreiben,
kann man das in keine Operation stecken?

tueXY(1,0,1,0,2,...);
 

firestone

Bekanntes Mitglied
danke für die ersten vorschläge werde mein projekt diesbezüglich noch mal durchgehen . noch mehr anregungen ?
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben