[Applet java & connexion mysql]

Fermé
Mathieu - 18 avril 2005 à 19:41
 bermath - 8 août 2008 à 21:54
Bonjour à tous,
petite question aux experts (ou pas d'ailleurs) :
j'ai créé une petite appli qui accède a une base de données mysql. Ca marche pas de soucis.

Le blème c'est que lorsque je cherche a la transformer en applet, ça ne marche pas. Il me sort une exception "ClassNotFoundException". Y a t il qqchose de particulier a préciser pour ce genre d'utilisation ?

Merci a vous.
Me demander les sources si nécessaire !

A+
A voir également:

5 réponses

Oubliez ce message,
voici les classes "épurées"

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.sql.SQLException;
import java.applet.Applet;
import java.awt.Graphics;
import java.io.*;
import java.util.*;
import java.sql.DriverManager;



public class Connexion extends JFrame implements ActionListener
{
JPanel leConteneur;
GridBagLayout sonLayout = new GridBagLayout();
GridBagConstraints sesContraintes = new GridBagConstraints();


JLabel sonlabellogin, sonlabelpass ;
JTextField sontextflogin , sontextfpass, sonlabelerreur;
JButton sonBoutonValid;
ResultSet resultatlecture;

Connection connexion;

private static java.sql.Connection con = null;
private static java.sql.Statement st = null;
private static java.sql.ResultSet rs = null;



public Connexion(String telTitre)
{
super(telTitre);
leConteneur = new JPanel();
leConteneur.setLayout(sonLayout);
setContentPane(leConteneur);



sonlabellogin = new JLabel("USER");
sonlabelpass = new JLabel("PASS");
sonlabelerreur = new JTextField("");

sontextflogin = new JTextField("");
sontextfpass = new JTextField("");

sonBoutonValid = new JButton("VALIDER");
sonBoutonValid.addActionListener(this);


sesContraintes.insets = new Insets(10,10,10,10);

sontextfpass.setColumns(10);
sontextflogin.setColumns(10);
sonlabelerreur.setColumns(10);

ajoutdUnComposant(sonlabellogin,sonLayout, sesContraintes, 0,0,1,1);
ajoutdUnComposant(sontextflogin,sonLayout, sesContraintes, 0,1,1,1);
ajoutdUnComposant(sonlabelpass,sonLayout, sesContraintes, 1,0,1,1);
ajoutdUnComposant(sontextfpass,sonLayout, sesContraintes, 1,1,1,1);
ajoutdUnComposant(sonlabelerreur,sonLayout, sesContraintes, 2,0,1,1);
ajoutdUnComposant(sonBoutonValid,sonLayout, sesContraintes, 2,1,1,1);


setSize(700,300);
setLocation(300,300);
setVisible(true);

}

public void actionPerformed(ActionEvent telEvt) {
if (telEvt.getSource() == sonBoutonValid)
{

String lepass, lelogin;
lepass = sontextfpass.getText();
lelogin = sontextflogin.getText();
String tmp = null;

try
{

Class.forName("com.mysql.jdbc.Driver").newInstance();
Class.forName("com.mysql.jdbc.Driver");


String url = "jdbc:mysql://localhost/bd";

con = DriverManager.getConnection(url, "tped", "tped");
st = con.createStatement();
rs = st.executeQuery("SELECT pass FROM login");


rs.beforeFirst();
rs.next();
String lepass2 = rs.getString("pass");sontextflogin.setText(lepass2);


while (rs.next()) {
System.out.println("titi");}


}
catch(SQLException exc){
System.out.println("Erreur 1 ! - " + exc.toString());
sonlabelerreur.setText("Erreur 1 ! - " + exc.toString());
}
catch(ClassNotFoundException exc) {
System.out.println("Erreur de chargement du pilote !");
sonlabelerreur.setText("Erreur de chargement du pilote !"+ exc.getMessage());
}

catch (Exception e) {
System.err.println("Exception: " + e.getMessage());
sonlabelerreur.setText("Exception: " + e.getMessage());
}

}




}



public void ajoutdUnComposant(Component telComposant, GridBagLayout telLayout,
GridBagConstraints tellesContraintes,
int telleLigne, int telleColonne,
int telleLargeur, int telleHauteur) {
tellesContraintes.gridx = telleColonne;
tellesContraintes.gridy = telleLigne;
tellesContraintes.gridheight = telleHauteur;
tellesContraintes.gridwidth = telleLargeur;
leConteneur.add(telComposant, tellesContraintes);
}

public Insets getInsets()
{return new Insets (30,15,15,15);
}


public static void main(String[] Args)
{
Connexion letest = new Connexion("Connexion");
}
}

// package divers;

import java.applet.*;
import java.awt.*;
import javax.swing.JApplet.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.sql.SQLException;
import java.applet.Applet;
import java.awt.Graphics;
import java.sql.DriverManager;


public class MonApplet extends Applet implements Runnable {

private boolean mustStop;

public void start() {
Connexion laconnex = new Connexion("test");
this.mustStop = false;
(new Thread(this)).start();
}

// Arrêt de l'applet
public void stop() {
this.mustStop = true;
}

// Un nouveau thread pour la réactualisation de l'applet
public void run() {
while(true) {
this.paint(this.getGraphics());
try { Thread.sleep(5); } catch(Exception e) {}
if (this.mustStop == true) return;
}
}
public void paint(Graphics gc) {


gc.setFont(new Font(gc.getFont().getName(), Font.BOLD, 26));
gc.drawString("Hello world",75,35);
}


}
1
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
18 avril 2005 à 19:43
Ca veut dire qu'il y a une classe dont tu te sert qu'il ne trouve pas. Met voir le bout de code concerné.

++
0
J'sais pas trop quoi sélectionner comme bout de code, car j'sais pas d'ou vient le bleme.
En meme temps, je doute que ça intersses quelquun de mater tout mon code...
Enfin, ce que j'aimerai dans la mesure du possible c que qqn ayant réalisé ce type d'appli (applet java et acces a une base de données mysql) me montre l'une de ses oeuvres ! ;)
Premiere classe

import java.applet.*;
import java.awt.*;
import javax.swing.JApplet.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.sql.SQLException;
import java.applet.Applet;
import java.awt.Graphics;
import java.sql.DriverManager;


public class MonApplet extends Applet implements Runnable {

private boolean mustStop;

public void start() {
Connexion laconnex = new Connexion("test");
this.mustStop = false;
(new Thread(this)).start();
}

// Arrêt de l'applet
public void stop() {
this.mustStop = true;
}

// Un nouveau thread pour la réactualisation de l'applet
public void run() {
while(true) {
this.paint(this.getGraphics());
try { Thread.sleep(5); } catch(Exception e) {}
if (this.mustStop == true) return;
}
}
public void paint(Graphics gc) {


gc.setFont(new Font(gc.getFont().getName(), Font.BOLD, 26));
gc.drawString("Hello world",75,35);
}


}

2ème classe

// package divers;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.sql.SQLException;
import java.applet.Applet;
import java.awt.Graphics;
import java.io.*;
import java.util.*;
import java.sql.DriverManager;



public class Connexion extends JFrame implements ActionListener
{
JPanel leConteneur;
GridBagLayout sonLayout = new GridBagLayout();
GridBagConstraints sesContraintes = new GridBagConstraints();


JLabel sonlabellogin, sonlabelpass ;
JTextField sontextflogin , sontextfpass, sonlabelerreur;
JButton sonBoutonValid;
ResultSet resultatlecture;
DbManager connectDatabase;
Connection connexion;

private static java.sql.Connection con = null;
private static java.sql.Statement st = null;
private static java.sql.ResultSet rs = null;

// ResultSet resultatlecture, resultatinsertion;

public Connexion(String telTitre)
{
super(telTitre);
leConteneur = new JPanel();
leConteneur.setLayout(sonLayout);
setContentPane(leConteneur);

connectDatabase = new DbManager();
connectDatabase.connect("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/","bd", "tped", "tped");

sonlabellogin = new JLabel("USER");
sonlabelpass = new JLabel("PASS");
sonlabelerreur = new JTextField("");

sontextflogin = new JTextField("");
sontextfpass = new JTextField("");

sonBoutonValid = new JButton("VALIDER");
sonBoutonValid.addActionListener(this);


sesContraintes.insets = new Insets(10,10,10,10);

sontextfpass.setColumns(10);
sontextflogin.setColumns(10);
sonlabelerreur.setColumns(10);

/* sontextfpass.setForeground(Color.black);
sontextfpass.setBorder(BorderFactory.createLineBorder(Color.black));
sontextfpass.setDebugGraphicsOptions(0);
sontextfpass.setDoubleBuffered(false);
sontextfpass.setOpaque(false);
sontextfpass.setCaretColor(Color.black);
sontextfpass.setDisabledTextColor(SystemColor.menu);
sontextfpass.setSelectedTextColor(Color.lightGray);
sontextfpass.setSelectionColor(Color.black);
sontextfpass.setColumns(1);
sontextfpass.setHorizontalAlignment(SwingConstants.CENTER);
sontextfpass.setFont(new java.awt.Font("DialogInput", 0, 13));*/

ajoutdUnComposant(sonlabellogin,sonLayout, sesContraintes, 0,0,1,1);
ajoutdUnComposant(sontextflogin,sonLayout, sesContraintes, 0,1,1,1);
ajoutdUnComposant(sonlabelpass,sonLayout, sesContraintes, 1,0,1,1);
ajoutdUnComposant(sontextfpass,sonLayout, sesContraintes, 1,1,1,1);
ajoutdUnComposant(sonlabelerreur,sonLayout, sesContraintes, 2,0,1,1);
ajoutdUnComposant(sonBoutonValid,sonLayout, sesContraintes, 2,1,1,1);


setSize(700,300);
setLocation(300,300);
setVisible(true);

}

public void actionPerformed(ActionEvent telEvt) {
if (telEvt.getSource() == sonBoutonValid)
{

String lepass, lelogin;
lepass = sontextfpass.getText();
lelogin = sontextflogin.getText();
String tmp = null;

try
{

Class.forName("com.mysql.jdbc.Driver").newInstance();
Class.forName("com.mysql.jdbc.Driver");
// System.out.println("chargement du driver réussi");

String url = "jdbc:mysql://localhost/bd";

con = DriverManager.getConnection(url, "tped", "tped");
st = con.createStatement();
rs = st.executeQuery("SELECT pass FROM login");
// tmp = Resultset_to_Str(rs);

rs.beforeFirst();
rs.next();
String lepass2 = rs.getString("pass");sontextflogin.setText(lepass2);

// System.out.println("ça passe quoi ! "+lepass2);

while (rs.next()) {
System.out.println("titi");}


}
catch(SQLException exc){
System.out.println("Erreur 1 ! - " + exc.toString());
sonlabelerreur.setText("Erreur 1 ! - " + exc.toString());
}
catch(ClassNotFoundException exc) {
System.out.println("Erreur de chargement du pilote !");
sonlabelerreur.setText("Erreur de chargement du pilote !"+ exc.getMessage());
}

catch (Exception e) {
System.err.println("Exception: " + e.getMessage());
sonlabelerreur.setText("Exception: " + e.getMessage());
}

}


/* PreparedStatement sqlExtraireData = connectDatabase.getPrepare("SELECT pass FROM login WHERE user LIKE ? ");
sqlExtraireData.setString(1, lelogin);
resultatlecture = connectDatabase.getQuery(sqlExtraireData);
resultatlecture.beforeFirst();
resultatlecture.next();
String lepass2 = resultatlecture.getString("pass");

if (lepass2.equals(lepass)) {

sontextfpass.setText("Utilisateur connecté");
}
else
sontextfpass.setText("Utilisateur non connecté");
*/


/* catch (SQLException e1)
{
e1.printStackTrace();
} //Catch*/


}

private static String Resultset_to_Str(java.sql.ResultSet rs) {
// TODO Auto-generated method stub
int size_rs = 25;//tranche de capture default prend les 25 dernière
// tranches de 5min
String[] tmp = null;
for (int i = 0; i <= size_rs; i++) {
try {
tmp[i] = rs.getString(i);//recup
System.out.println(i);
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("error SQL, can not convert Rs to Str");
e.printStackTrace();
return null;
}
}
return tmp.toString();
}

public void ajoutdUnComposant(Component telComposant, GridBagLayout telLayout,
GridBagConstraints tellesContraintes,
int telleLigne, int telleColonne,
int telleLargeur, int telleHauteur) {
tellesContraintes.gridx = telleColonne;
tellesContraintes.gridy = telleLigne;
tellesContraintes.gridheight = telleHauteur;
tellesContraintes.gridwidth = telleLargeur;
leConteneur.add(telComposant, tellesContraintes);
}

public Insets getInsets()
{return new Insets (30,15,15,15);
}
/* public void start() { }
public void show(Graphics graphics) { }*/

public static void main(String[] Args)
{
Connexion letest = new Connexion("Connexion");
}
}

3eme classe
//package divers;


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.sql.SQLException;
import java.applet.Applet;
import java.awt.Graphics;
import java.io.*;
import java.util.*;
import java.sql.DriverManager;

/* Classe DbManager
* -> Controleur pour les opérations sur la base de donnée
* @author Phil & Yo
**/

public class DbManager
{
private Connection conn;
private Statement stmt;
private PreparedStatement pStmt;
private ResultSet rs;
private String pilote; //= "com.mysql.jdbc.Driver";
private String url; //= "jdbc:mysql://localhost/";
//private String dbName;
//private String log;
//private String password;



// Méthode de connection à la base
// Arguments : le pilote, l'url, le nom de la bdd, le log, le pass
public void connect(String pilote, String url, String dbName, String log, String pass)
{
try
{
url += dbName;
Class.forName(pilote);
conn = DriverManager.getConnection(url,log,pass);
stmt = conn.createStatement();
}
catch ( SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("1");
}
catch ( ClassNotFoundException E)
{
E.printStackTrace();
}
}

// Méthode qui renvoit un ResultSet pour une requête
// @args -> la requete
public ResultSet getQuery(String query)
{
try
{
rs = stmt.executeQuery(query);
}
catch (SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("2");
System.out.println("SQLException: " + E.getMessage());
System.out.println("SQLState: " + E.getSQLState());
System.out.println("VendorError: " + E.getErrorCode());
}
return rs;
}

// Méthode qui renvoit un ResultSet pour un objet PreparedStatement
// @args -> le PrepardeStatement
public ResultSet getQuery(PreparedStatement p)
{
pStmt = p;
try
{
rs = pStmt.executeQuery();
}
catch (SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("3");
}
return rs;
}

// Méthode qui renvoit un objet PreparedStatement pour une requête
// @args -> la requête
public PreparedStatement getPrepare(String query)
{
try
{
pStmt = conn.prepareStatement(query);
}
catch (SQLException e)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("4");
}
return pStmt;
}

// Méthode qui renvoit le nombre d'enregistrements affectés
// par une requete de type INSERT, DELETE, UPDATE
// @args -> la requete
public int update(String query)
{
int r = 0;
try
{
r = stmt.executeUpdate(query);
}
catch (SQLException e)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("5");
}
return r;
}

// Méthode qui renvoit le nombre d'enregistrements affectés
// par un objet PreparedStatement
// @args -> le PreparedStatement
public int update(PreparedStatement p)
{
int r = 0;
try
{
pStmt = p;
r = pStmt.executeUpdate();
}
catch (SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("6");
}
return r;
}

// Méthode qui renvoit le nombre d'enregistrements
// d'un ResultSet
// @args -> le ResultSet
public int recordCount(ResultSet res)
{
int i = 0;
try
{
while (res.next())
i++;
}
catch (SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("7");
}
return i;
}

// Méthode qui renvoit un String[]
// à partir d'un ResultSet
// Pratique pour remplir une Combo
// @args -> le ResultSet
public String[] makeList(ResultSet res)
{
int rowCount = this.recordCount(res);
String[] list = new String[rowCount+1];
int i = 0;

try
{
for (i = 0 ; i < rowCount ; i++)
{
res.absolute(i+1);
list[i+1] = res.getString(1);
}
}
catch (SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("8");
}

return list;
}

// Méthode qui renvoit un Object[][]
// à partir d'un ResultSet pour l'élaboration d'un DataGrid
// @args -> le ResultSet
public Object[][] makeData(ResultSet res)
{
ResultSetMetaData infos = null;
Object[][] data = null;
int colCount = 0;

try
{
infos = res.getMetaData();
colCount = infos.getColumnCount();
}
catch (SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("9");
}
int rowCount = this.recordCount(res);
int i,j = 0;
data = new Object[rowCount][colCount];

try
{

// Remplissage de data
for (i = 0 ; i < rowCount ; i++)
{
res.absolute(i+1);
for (j = 0 ; j < colCount ; j++)
{
int type = infos.getColumnType(j+1);
switch (type)
{
case Types.CHAR :
case Types.VARCHAR :
case Types.LONGVARCHAR : data[i][j] = res.getString(j+1); break;

case Types.TINYINT : {
if ( infos.getPrecision(j+1) == 1)
data[i][j] = new Integer(res.getInt(j+1));
else if (res.getInt(j+1) == 0)
data[i][j] = new Boolean(false);
else
data[i][j] = new Boolean(true);
break;
}
case Types.SMALLINT :
case Types.INTEGER : data[i][j] = new Integer(res.getInt(j+1)); break;

case Types.DATE : data[i][j] = res.getDate(j+1); break;

default :
break;
}
}
}
}
catch (SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("10");
}

return data;
}

// Méthode qui renvoit le nom des colonnes d'un ResultSet
// @args -> le ResultSet
public String[] getColNames(ResultSet res)
{
ResultSetMetaData infos = null;
String[] colName = null;
int colCount = 0;

try
{
infos = res.getMetaData();
colCount = infos.getColumnCount();
}
catch (SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("11");
}
int j = 0;
colName = new String[colCount];

try
{

//Remplissage de colName
for (j = 0 ; j < colCount ; j++)
colName[j] = infos.getColumnName(j+1);

}
catch (SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("12");
}


return colName;
}


public void disconnect()
{
try
{
rs.close();
stmt.close();
conn.close();
}
catch ( SQLException E)
{
JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
System.out.println("14");
}
}

}
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
18 avril 2005 à 20:56
Il te la met ou l'exception de classe ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Au niveau de mon interface.
L'applet se lance, l'interface apparait. La connexion à la base de données se fait lorsque l'on clique sur un bouton. J'ai crée un textfield dans lequel s'affiche les messages d'erreur.

J'ai lu un peu les autres messages du forum, est il nécessaire de créer un .jar ??? Qu'est ce que c'est ? Comment faut il procéder ?

Voici mon .html actuel :

<HTML>
<HEAD>
<TITLE>Page de test de l'applet HelloWorldApplet</TITLE>
</HEAD>
<BODY>
<BR>

<DIV Align="center">
<APPLET Code="MonApplet.class" Width=300 Height=50>

Votre navigateur ne supporte pas les applets.
</APPLET>
</DIV>
</BODY>
</HTML>


Merci à toi de t'interesser a mon probleme. C'est gentil de ta part.
0
<APPLET Code="MonApplet.class" Width=300 Height=50>

Votre navigateur ne supporte pas les applets.
</APPLET>

il faut mettre ton .jar dans l'attribut PARAM
exemple: <applet codebase='.' code='MonApplet.class' param='prog.jar,swing.jar,etc...'>
0