Mysql verbinding in een applet?

Pagina: 1
Acties:

  • Isengrim
  • Registratie: Februari 2004
  • Laatst online: 21:25
Hallo, ik ben bezig met een applet die statistieken moet genereren uit een mysql database.
Nou ben ik er al achter hoe in een 'normaal' java app een verbinding moet maken, en het leek mij dat dat in een Applet op dezelfde manier zou moeten.
Maar ik krijg het maar niet voor elkaar, de enige melding die ik krijg is 'Applet not initialized', onder in het applet frame.
Voor de rest niks specifieks.
Google geeft me ook geen nuttige hits.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package Applet_Klus;


import java.sql.*;
import java.applet.*;
import java.awt.*;
import javax.swing.*;
import javax.sql.*;


public class Applet_proto1 extends javax.swing.JApplet  {
   
    
   public void init()
   {
        Container cp = getContentPane();
        JTextArea foutvak = new JTextArea("Exception Area");
        foutvak.setEditable(false);
        
        cp.add(foutvak);
       
        Connection conn = null;
        String driver = "com.mysql.jdbc.Driver";
        Statement stmt;
        
        try{
             Class.forName( driver );
             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/klus", "root", "");
             stmt = conn.createStatement();
           }
        
       catch(SQLException e){
           foutvak.setText(e.getMessage());
       }
          catch(ClassNotFoundException e){
              foutvak.setText(e.getMessage());
           }
       
  }

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Kijk eens naar je Javaconsole. Volgens mij is er namelijk een SecurityException opgetreden, die je niet opgevangen hebt.

  • Isengrim
  • Registratie: Februari 2004
  • Laatst online: 21:25
Ik zie niets in de console, ook als in de SecurityException catch, krijg ik er geen melding over

Verwijderd

Even met een debugger doorheen lopen dan zie je in elk geval op welke plek hij kapot gaat.
Waarschijnlijk ben je vergeten de mysql driver te uploaden/in je classpath te zetten oid.

Verwijderd

Ik heb geleerd dat het niet echt de "bedoeling" is om vanuit een applet direct met een database te connecten. Misschien kan je die applet met een servlet laten praten die dan namens de applet connect met de db? Ik weet eigenlijk sowieso niet of het gaat werken op de manier die jij nu probeert.

Verwijderd

Voor zover ik weet kan een Java-applet alleen verbinding maken met een service, wanneer die service op dezelfde server draait als de webserver. Maar aangezien ik localhost in je code zie staan zal dat wel goed zitten :)

Ik weet niet hoe MySQL omgaat met de verbinding die je probeert te leggen, aangezien alles wat je doet op de localhost gebeurt. Het kan zijn dat MySQL het toch interpreteert als een verbinding van 'buitenaf', en dat kan als het goed is standaard niet (is een instelbare optie in de MySQL config).

Tot slot nog een opmerking:
Het is niet echt netjes om op deze manier een applet met een database te verbinden. Veel hostingproviders zullen om beveiligingsredenen MySQL ook geen connecties van buitenaf laten accepteren. Wil je je projectje na afronding migreren naar een hostingprovider, dan raadt ik je aan om je database-connectie in PHP oid af te handelen en je applet met de PHP-scripts te laten praten.

  • Isengrim
  • Registratie: Februari 2004
  • Laatst online: 21:25
Enig idee hoe ik dat aan zou moeten pakken dan?
Ik kan namelijk niets nuttigs vinden over PHP icm een applet.

  • Xandrios
  • Registratie: Februari 2001
  • Laatst online: 05-05 19:50
Je kunt je applet code (serverside) door PHP laten parsen, en daaruit volgt dan dus een applet met de dynamische var's van PHP :)

Verwijderd

Ik zou die database connectie sowieso niet in een applet doen, die verbinding is namelijk niet beveiligd, en de client kan zo het gebruikersnaam en wachtwoord afluisteren met een packet sniffer.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op donderdag 19 mei 2005 @ 11:19:
Voor zover ik weet kan een Java-applet alleen verbinding maken met een service, wanneer die service op dezelfde server draait als de webserver. Maar aangezien ik localhost in je code zie staan zal dat wel goed zitten :)
psst localhost is dus de client met de webbrowser ;)
tenzij de webserver ook localhost is dan is er geen enkel probleem, alleen heeft de rest van internet er niks aan :P

(en uiteraard moet je geen connecties laten maken naar je SQL server, immers je gooit wel je wachtwoord zo over de kabel)
Pagina: 1