jeudi 4 juin 2015

Neues Tupel in MySQL Datenbank mittels Kommandozeilenparameter anlegen

Hallo liebe Forumgemeinde,

wie solls anders sein, ich hab ein Problem mit einer Aufgabe aus nem Übungsblatt für Informatik 2.
Es geht darum, dass auf dem Server der Uni eine mySQL Datenbank eingerichtet wurde und diese eine Tabelle
Hund enthält, mit Spalten: ID, name, lebensalter, besitzer
Sie wurde anhand dieser SQL-Abfrage erzeugt:
CREATE TABLE Hund
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
lebensalter SMALLINT UNSIGNED NOT NULL,
besitzer VARCHAR(20),
PRIMARY KEY (ID)
);

Ziel ist es nun ein Java-Programm zu schreiben, welches eine Verbindung zur Datenbank herstellt und über Kommandozeilenparameter bestimmte Funktionalitäten bereit stellt. Die Aufgabe, die mir Probleme bereitet ist folgende:
Mit Kommandozeilenparametern der Form
-insert <name> <lebensalter> <besitzer>
soll ein neues Tupel in der Tabelle Hund angelegt werden konnen.

Ich hab versucht, diese Parameter zu speichern und dann an VALUES zu übergeben aber das klappt nicht, und wenn ich bei VALUES z.B: args[1] übergebe klappt das auch nicht. Ich hoffe, dass mir jemand sagen kann, wie man einen Kommandozeilenparameter als Wert an VALUES übergeben kann.

Java Code:

  1.  
  2. package aufgabe26;
  3.  
  4. import java.sql.*;
  5.  
  6. public class Aufgabe26 {
  7.  
  8. public static void main(String[] args) {
  9.  
  10. if (args.length == 0) {
  11. System.out.println("Kein Kommandozeilenparameter übergeben!");
  12. return;
  13. }
  14.  
  15. try {
  16.  
  17. Class.forName("com.mysql.jdbc.Driver");
  18.  
  19. Connection c = DriverManager.getConnection("jdbc:mysql://educos-srv01.informatik.uni-augsburg.de:3306/theDatabase", "student", "inFormatik2");
  20.  
  21. Statement abfrage = c.createStatement();
  22.  
  23. if (args[0].equals("-showALL")) {
  24.  
  25. String befehl = "SELECT * FROM Hund";
  26. ResultSet ergebnis = abfrage.executeQuery(befehl);
  27. while (ergebnis.next()) {
  28. System.out.println(ergebnis.getInt(1)
  29. + ", " + ergebnis.getString(2)
  30. + ", " + ergebnis.getInt(3)
  31. + ", " + ergebnis.getString(4));
  32. }
  33. }
  34.  
  35. if (args[0].equals("-insert")) {
  36. String name = new String(args[2]);
  37. int alter = Integer.parseUnsignedInt(args[3]);
  38. String besitzer = new String(args[4]);
  39. String befehl = "INSERT INTO Hund (name, lebensalter, besitzer) VALUES ('name', alter, 'besitzer')";
  40. abfrage.executeUpdate(befehl);
  41. }
  42.  
  43. }
  44.  
  45. System.out.println(e.getMessage());
  46. }
  47. catch (SQLException e ) {
  48. System.out.println(e.getMessage());
  49. }
  50. }
  51.  
  52. }


Verwendete IDE: Eclipse


Viele Greetz
Walter :)


Neues Tupel in MySQL Datenbank mittels Kommandozeilenparameter anlegen

0 commentaires:

Enregistrer un commentaire