Statement überprüfen und ausführen

chillor01

Grünschnabel
Hallo,

ich habe jetzt mal eine Klasse zum einlesen nach meinem Geschmack erstellt (siehe unten).

Ich habe jetzt noch paar Probleme bei der Main. Meinen Ansatz kann man unten sehen. Ich weiß zwar, dass es für manche trivial ist, aber ich hab da Probleme. Im Grunde genommen ist es nur eine Konsolenanwendung. Wie man sehen kann, möchte ich einen Schalter abfragen, der vom Nutzer aktiviert wird, sobald man das passende Statement (mind. ein Statement) gewählt hat. Das gewählte Statement kann dan sofort übernommen werden.

Mich würde es interessieren, ob die Prüfung der Parameter stimmt und wie ich das ausgewählte Statement aus der Konsole sofort abspeicher und der Klasse DB zum ausführen übermittle.
Code:
public class ReadData {

    /**
	 *
	 * @return
	 * @throws Exception
	 */
	public String[][] read_file()throws Exception {

        //Ort der Datei
        File file = new File("c:/SQL_Statements.txt");

        //Zeilenweise auslesen
        BufferedReader br = new BufferedReader(new FileReader(file));

		//Deklaration
		String statement;
		int anzahlstatements=0;
		//Ermitteln der Anzahl an Zeilen
		while((statement = br.readLine()) !=null) {
			++anzahlstatements;
		}

		String[][] array = new String[anzahlstatements][2];
		br.close();
		br = new BufferedReader(new FileReader(file));
        for(int i = 0; i < array.length; i++)
        {
			//pro Zeile
			statement = br.readLine();
			String tmp[] = statement.split("\",,,\"");//Felder aus Datei für Zeile i in tmp eingelesen
			if(tmp.length != array[i].length) throw new Exception("größen stimmen nicht überein");
            for(int j = 0; j < array[i].length; j++)
            {
				//pro Feld
				array[i][j] = tmp[j];
            }
        }
        br.close();
		return array;
    }
}

Code:
public class Main {

		public static void main(String[] args) throws Exception{
		
		//1. eingabeparameter prüfen (statement gewählt? zeitangaben->variablen,etc.)
			
		//die Argumente der Kommandozeile, die sich im Feld args[] befinden werden ausgegeben
		for ( int i = 0; i < args.length; i++ )
			System.out.println( args[i] );

		//Um zu testen, ob auf der Kommandozeile der Schalter --name gesetzt ist
		String Schalter = "--name";
		String Kommandozeile = args[i];
		if(Schalter.equals(Kommandozeile))
		{
			System.out.println("beinhaltet --name");
		}
		else{
			System.out.println("beinhaltet nicht --name");
		}

			//3. ausführen
			//->DB::

			//4. Ausgabe in Textdatei speichern (additiv? überschreibend? einzelne Dateien?)
			//->StoreValues::

			//5. Ausgabe für evtl. weitere Exportvarianten

			//6. Ende

			//Objekt ReadData
			ReadData r1 = new ReadData();
			//Statements ausgeben
			String[][] test = r1.read_file();
			//Testweise test ausgeben
			System.out.println("Das Statement mit dem Namen "+test[0][1]+" lautet:");
			System.out.println(test[0][0]);
			System.out.println("Das Statement mit dem Namen "+test[1][1]+" lautet:");
			System.out.println(test[1][0]);
		}
}
 
Hi chillor01,

also die Abfrage is doch nur der Schalter den du abfragst. Für die statements kannst du auch weitere args Argumente nutzen. den eingegebenen String in ein String Objekt und dann als Statement an die Datenbank. Die Übergabe an die Datenbank läuft für mysql und java über jdbc (Da gibt es einige tutorials). Ich weiß nicht was du genau wissen willst, aber ich hoffe das hilft erstmal.

Gruß Air
 
Zurück