fredy: JDBC und Applets

Hi!

Wenn man ein Applet schreibt, das auf eine DB zugreifen soll, so benötigt man dafür einen speziellen JDBC-Treiber, welcher zu 100% in Java geschrieben ist. Dazu meine Frage:

Wenn man nun so einen Treiber verwendet, muß dann die DB übers Internet über TCP/IP ansprechbar sein, oder genügt es, wenn die DB vom Webserver, auf dem das Applet liegt, ansprechbar ist?
(Oder anders gefragt: Läuft die Kommunikation wie folgt ab: "APPLET -> WEBSERVER -> DB" oder doch "APPLET -> DB" ?).

Danke und viele Grüße
fredy

ps.: schön, das es das Forum wieder gibt ...

  1. Hallo Fredy

    Mit JDBC habe ich mich noch nicht viel beschäfftigt, aber das Applet muss ja irgendwie mit der DB kommunizieren.
    Und das muss es wohl per TCP/IP tun.
    Überhaupt ist es wohl keine Idee, ein Applet direkt mit einer DB kommunzieren zu lassen.
    Alle Schnittstellen, die ein Applet verwenden darf, stehen auch einen Hacker offen.
    Deswegen solltest Du da eher was Serverseitiges (z.B. Servlet) zwischenschalten.

    Tschüs

    Daniel

    1. Hi Fredy&Daniel!

      Deswegen solltest Du da eher was Serverseitiges (z.B. Servlet) zwischenschalten.

      Jup, auf dem Server sollte ein Servlet laufen, dass durch ein ServerSocket-Objekt einen Port belegt. Das Applet kann dann über ein Socket-Objekt eine Verbindung zu diesem Port aufbauen. Das Servlet regelt den Zugriff auf die DB und schickt die Daten an das Applet weiter. Die Daten werden also nicht über http (über den Webserver), sondern über eine Socket-Verbindung ausgetauscht. Wenn Du was in der Richtung proggen willst, dann guck am besten mal, was es da alles für Bücher zu gibt - das ist nämlich ein ziemlich großes Thema. In den meisten Büchern über Java Servlets gibt es auch Teile über die Kommunikation zwischen Servlet-Applet.

      Bis denne,
        Simon

      1. Hi nochmal,

        ich muss mich leider berichtigen:
        Es ist doch möglich, vom Applet aus direkt zur Datenbank zu verbinden. Dazu hab ich ein Beispiel in einem Buch gefunden (Addison-Wesley, JDBC, ISBN:3-8273-1306-6), von dem ich mal fünf Zeilen rausschreibe:

        ...
        String url = "jdbc:mySubprotocol:myDataSource";
        String query = "select COF_NAME, PRICE from COFFEES";
        ...
        Connection con = DriverManager.getConnection(url, "myLogin", "myPassword");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery(query);
        ...

        Das dürfte der zentrale Kern sein. Mehr findest Du wahrscheinlich im API des java.sql-Paketes (Klasse Connection).

        MfG Simon

        1. Moin,

          Es ist doch möglich, vom Applet aus direkt zur Datenbank zu verbinden.

          ich glaube aber nicht, dass es unbedingt sinnvoll ist - im Java-Applet Name und Passwort stehen zu haben, ist bestimmt nicht das, was man moechte ;)
          (deswegen das Servlet)

          Viele Gruesse,

          n.d.p.

          1. Hi n.d.!

            Es ist doch möglich, vom Applet aus direkt zur Datenbank zu verbinden.

            ich glaube aber nicht, dass es unbedingt sinnvoll ist - im Java-Applet Name und Passwort stehen zu haben, ist bestimmt nicht das, was man moechte ;)
            (deswegen das Servlet)

            Ob man jetzt über ein Servlet connected oder direkt - auf die Passwortverwaltung hat das keinen Einfluss. Im Applet ist es genausogut möglich, das Passwort von User nur abzufragen und nicht fest in den Code zu integrieren. Wenn Du über ein Servlet gehst, musst Du dem ja auch das pwd mitteilen - es sei denn, Du codierst es fest in das Servlet ein, was ich aber aus Gründen der Flexibilität nicht für sehr sinnvoll halte.

            Bis denne,
              Simon