Mit Java eine DB zu verwalten

halfa

Grünschnabel
Hallo,

ich habe versucht die geeeignete Daten Typen für MySQL "Int, Char, und Date" anzunehmen, statt Integer und String für Access, um die Rückgabe Werte zu erhalten. Die Datenbank soll gefplegt werden, das man Datensätze in der Datenbank einfügen ändern löschen, und Anzeigen lassen kann. Aus der Benutzeroberfläche über die Methoden aufruf kann in der Datenbank zugegrifen werden. Hier ist das DB Code eingefügt um das Problem zu erkennen.
Vielen Dank für weitere unterstützungen!

MfG gem

Code:
import java.sql.*;
import java.util.*;
import java.sql.DriverManager;
import java.sql.SQLException;

//Durch class DB kann die Datenbank Verbindung aufgebaut werden

class DB {
  private Statement st;
  private Connection cn;
  private String Treiber;
  private String Adresse;
  public  boolean isConnected;
  private String Datenbank;
  private String Benutzer;
  private String Passwort;


 //Lade den JDBC-Treiber für Mysql-Datenbank


  public DB() {
    this.Treiber = ("jdbc.mysql.mitarbeiter");

    //Url der Datenbank eingeben

    this.Adresse = "jdbc:mysql:localhost:3306/DB_01:";
    this.Datenbank = "DB_01";
    this.Benutzer= "root";
    this.Passwort= "";

}

  // Die Verbindung zur Datenbank aufbauen

  public void VerbindeDB() throws DBException {
    try {
      Class.forName(this.Treiber);
      cn = DriverManager.getConnection(this.Adresse);
      st = cn.createStatement();

      isConnected = false;
      System.err.println("Fehler bei datenbank connection");

      isConnected = true;
      System.out.println("Connection OK");
    }
    catch (ClassNotFoundException ex) {
      throw new DBException("" + ex);
    }
    catch (SQLException ex) {
      throw new DBException("" + ex);
    }
  }

  // trenne der Datenbank-Connection

  public void TrenneDB() throws DBException {
    try {

      st.close();

      cn.close();
    }
    catch (SQLException ex) {
      throw new DBException("" + ex);
    }

  }



//   ResultSet liefert jeden Index von der DB Tabellen  zurück

 public Vector getString(String table, String feld) throws DBException {
    Vector vec = new Vector();

    String doz;
    try {
      ResultSet rs = this.st.executeQuery("SELECT " + feld + " FROM " + table);
      while (rs.next()) {
    doz = new String(rs.getString(feld));
   vec.addElement(doz);

      }
    rs.close();
    }
    catch (SQLException ex) {
      throw new DBException("" + ex);
    }
    return vec;
  }


public Vector getMitarbeiterInfo(String sname) throws DBException {
    Vector vec = new Vector();

  // Deklarieren der Attribute des Mitarbeiters


Integer id, tel, stid;

char name, vorname, email, kuerzel, userid;

Date geb, eint;


 try {

      String quer = "SELECT * FROM Mitarbeiter where Name like " + "'" + sname+ "'";

      ResultSet rs = this.st.executeQuery(quer);
      rs.next();
      id = new Integer(rs.getInt(1));
      vec.addElement(id);

      name = new Char (rs.getChar(2));
      vec.addElement(name);

      vorname = new Char (rs.getChar(3));
      vec.addElement(vorname);

      geb = new Date (rs.getDate(4).toDate());
      vec.addElement(geb);

      eint = new Date (rs.getDate(5).toDate());
      vec.addElement(eint);

      tel = new Integer (rs.getInt(6).toInt());
      vec.addElement(tel);

      stid = new Integer (rs.getInt(7));
      vec.addElement(stid);

      email = new Char (rs.getChar(8).toChar());
      vec.addElement(email);

      kuerzel = new Char (rs.getChar(9).toChar());
      vec.addElement(kuerzel);

      userid = new Char (rs.getChar(10).toChar());
      vec.addElement(userid);

      rs.close();
    }
    catch (SQLException ex) {
      throw new DBException("" + ex);
    }
    return vec;
  }


  public void setMitarbeiter(int ID, char name, char vorname, Date geb,
                             Date eint, int tel, int stId, char email, char kuerzel, char userid) throws

      DBException {

    try {

  String qer = "INSERT INTO Mitarbeiter ( ID, Name, Vorname, Geburtsdatum, Eintrittsdatum, TelNr, StID, EMail, Kuerzel, Userid )  VALUES (" +
          ID+",'" + name + "','" + vorname + "','" + geb + "','" + eint + "','" +
          tel + "', '" + stId + "', '" + email + "', '" + kuerzel + "', " + "'" + userid + "')";



     System.out.println(qer);
      this.st.executeUpdate(qer);

      System.out.println("Insert Mitarbeiter OK");
    }
    catch (SQLException ex) {
      throw new DBException("" + ex);
    }

  }
         

  // Werte werden von der erzeugte Tabelle Mitarbeiter geloescht


  public void delMitarbeiter(String sname) throws DBException {
    try {

      this.st.executeUpdate("DELETE FROM Mitarbeiter WHERE Name like " + "'" +
                            sname + "'");
    }
    catch (SQLException ex) {
      throw new DBException("" + ex);
    }
  }

 // Werte werden in die erzeugte Tabelle Mitarbeiter aktualisiert


 public void updateMitarbeiter(int ID, char name, char vorname, Date geb,
                             Date eint, int tel, int stId, char email, char kuerzel, char userid) throws DBException {
     try {


String quer="UPDATE Mitarbeiter SET  Mitarbeiter.Name ='"+name+"',"+

          "Mitarbeiter.Vorname ='"+vorname+"',Mitarbeiter.Geburtsdatum ='"+geb+"',"+
          "Mitarbeiter.Eintrittsdatum ='"+eint+"',Mitarbeiter.TelNr='"+tel+"',Mitarbeiter.StID ='"+ stId+"', Mitarbeiter.EMail='"+email+"', "+
          "Mitarbeiter.Kuerzel = '"+kuerzel+"', Mitarbeiter.Userid = '"+userid +"'"+

           "WHERE Mitarbeiter.ID ="+ID;



      System.out.println(quer);
      this.st.executeUpdate(quer);
       System.out.println("Update Mitarbeiter OK");

     }
     catch (SQLException ex) {
       throw new DBException("" + ex);

          }
      }
}

class DBException
    extends Exception {
  public DBException() {

     }

  public DBException(String Fehlertext) {
    super(Fehlertext);

    }

  }
 
Hi!

Ich kann aus deiner Beschreibung oben auch keine Schlüsse ziehen, ehrlich gesagt.

Wie soll das ganze Weitergehen? Soll die Datenbank über eine WebGUI oder eine andere Applikation gesteuert werden?

TOM
 
Hi,
Ich habe auf demselben Rechner, eine Java Applikation, der auf dem Datenbankserver zugreift, um die Datenbank zu verwalten. Das ganze kann aus einer GUI Aplikation verwaltet werden. Ich habe zu erst ein Datenbank unter Access realisiert, um aus dem JavaGUI meine Datenbank zu verwalten.
Zweitens habe ich der selber Datenbank unter Mysql entwickelt, um den zugrif auf Mysql zu verwerklichen. Und da habe ich die geeignete Datentypen für Mysql "Int, Char, und Date" genommen statt nur Int, und String.
Aber zuerst gab es mir diese Fehlemeldung:

1) Kann die Datentypen Char, und Date nicht exeptieren

Ich habe wieder versucht den selben Datentypen Int, und String zu behalten, und die Datenbank unter Mysql von dem GUI aus zu verwalten, abere bakmm ich wieder eine Fehlemeldung.

2) Es wurde keine JDBC Driver gefunden
// in diesem Fall muss den JDBC Driver installieren, dass ich nur ODBC auf meinem Rechner habe, aber ich weiss nicht, ob es klappen wird!
 
Zurück