II.3.3.3 Accès aux Bases de Données
A partir de la version 1.1 du JDK, l'API JDBC
(Application Programming Interface Java DataBase
Connectivity) fait partie intégrante de la plate-forme Java. JDBC
est un ensemble de classes et interface permettant de réaliser des
connexions vers des bases de données et d'effectuer des requêtes
avec le langage de requêtes structuré SQL (Structure Query
Language). En plus de tout ce que fait ODBC (Open DataBase Connectivity), JDBC
permet aussi l'accès à des sources de données sous forme
de fichiers comme XML. En Java L'API JDBC est représenté par le
package java.sql29.
II.3.3.4. Paramétrage de la source de
données ODBC
1. Ouvrir le panneau de configuration,
2. Sélectionner l'Administrateur de source de
données ODBC,
3. Cliquer sur l'onglet DNS Système,
4. Cliquer sur le bouton Ajouter,
29 Josich MUKENGE MBUMBA, Le Langage Java et
Nous, Ed. CRIGED, Octobre 2012, P.129
93
5. Sélectionner dans la liste le pilote SQL
Server puis cliquer sur le bouton terminer,
6. Indiquer un nom pour la source de données et
sélectionner à quel serveur SQL Serveur voulez-vous vous
connecter ?,
7. Cliquer sur le bouton Suivant,
8. Sélectionner la base de données à
utiliser,
9. Cliquer sur le bouton Suivant, et fermer la fenêtre de
l'administrateur de source ODBC.
II.3.3.5. Connexion de la base de données
Dans une application Java qui utilise une base de données,
la mention de l'URL de la base de données est obligatoire :
String url=
«jdbc:odbc:PROJET_FPEN»;
94
Dès qu'un driver a reconnu le gestionnaire de base de
données correspondant à URL fournie, il lance une connexion
à la base de données et utilise le nom d'utilisateur et le mot de
passe indiqués. L'établissement de la connexion se fait selon le
code suivant : Connection con=null ;
con= DriverManager.getConnection (url, « »,
« »);
II.3.3.5 Les requête de sélection et de
mise à jour
L'objet Connection créé va permettre
d'interagir avec la base. Pour réaliser des requêtes de
sélection, un objet de type Statement doit être
générer.
Statement requete=con.createStatement () ;
Le résultat d'une requete est
récupéré au moyen d'un objet de type ResultSet.
Cette interface permet d'accéder aux données extraites
grâce à la requête.
II.3.3.6. Création des interfaces
1. Ecran de Démarrage
Lorsque l'application est lancée une page d'accueil
s'affiche pour le démarrage de l'application, ceci dure pendant quelques
secondes pour faire l'appelle de la boite de connexion (mot de passe).
95
1.1 Ecriture des codes
public class Menu_principal extends javax.swing.JFrame {
private Timer t = null;
private int count=0;
public Menu_principal() {
initComponents();
this.setTitle("La page d'acceuil...");
t = new Timer(100, new ActionListener() {
public void actionPerformed(ActionEvent e) {
count ++;
jProgressBar1.setValue(count);
if(jProgressBar1.getValue() < 100){
jProgressBar1.setValue(jProgressBar1.getValue() + 1);
}
if(jProgressBar1.getValue() == 100){
//setVisible(false);
F_authentification fr =new F_authentification();
fr.setVisible(true);
t.stop();
}
}
});
t.start();
}
2. Boite de Connexion
Cette interface nous permet pour la sécurisation de
l'application, avant d'y accéder il faut taper le mot de passe.
96
2.1 Ecriture des codes
private void connexionActionPerformed(java.awt.event.ActionEvent
evt) {
try
{
connexion con=new connexion();
ResultSet requete= con.resultat("select * from tableconnexion
WHERE
username='"+txtusers.getText()+"' and
password='"+txtpassword.getText()+"'");
if(requete.next()){
setVisible(false);
Menu fr=new Menu();
fr.setVisible(true);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Nom utilisateur ou mot
de
passe est incorrect");
}
txtusers.setText("");
txtpassword.setText("");
txtusers.requestFocusInWindow();
}
}
3. Menu Principal
Cette interface nous permet de faire le choix des interfaces
tels que l'interface pour la saisie des projets, la grille des données,
la saisie des Etablissements scolaires...
97
3.1 Ecriture des codes
package projet_fpen;
import javax.swing.JOptionPane;
public class Menu extends javax.swing.JFrame {
public Menu() {
initComponents();
this.setTitle("Menu principal");
// this.setExtendedState();
}
public void actionPerformed(java.awt.event.ActionEvent evt) {
projetActionPerformed(evt);
}
});
nouveau.add(projet);
nouveau.add(jSeparator4);
etablissement.setText("Etablissement");
nouveau.add(etablissement);
nouveau.add(jSeparator5);
responsable.setText("Responsable");
nouveau.add(responsable);
nouveau.add(jSeparator6);
regime.setText("Regime");
regime.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
regimeActionPerformed(evt);
98
}
});
nouveau.add(regime);
nouveau.add(jSeparator7); dossier.setText("Dossier");
nouveau.add(dossier);
nouveau.add(jSeparator8); fonction.setText("Fonction");
nouveau.add(fonction); nouveau.add(jSeparator10); fichier.add(nouveau);
fichier.add(jSeparator1);
imprimer.setText("Imprimer");
rep_projet.setText("Les repertoires des Projets des
Etablissements"); imprimer.add(rep_projet);
jSeparator3.setBackground(new java.awt.Color(255, 0, 0));
imprimer.add(jSeparator3); rep_etab.setText("Les repertoires des
Etablissements"); imprimer.add(rep_etab); imprimer.add(jSeparator11);
fichier.add(imprimer); fichier.add(jSeparator2);
quitter.setText("Quitter");
quitter.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt) {
quitterActionPerformed(evt);
}
});
MAJ_projet.setText("MAJ Projet");
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Menu().setVisible(true);
}}) ; }
}
99
4. Formulaires
4.a) Formulaire Encodage des Projets des établissements
C'est une interface qui nous permet de faire l'enregistrement
des nouveaux projets des établissements scolaires.
private void btnajouterActionPerformed(java.awt.event.ActionEvent
evt) { try {
connexion con =new connexion();
ResultSet Rs=con.resultat("Select * from projet
where code_projet='"+recherche.getText()+"'");
if(Rs.next()){
JOptionPane.showMessageDialog(null,"Attention, ce code projet
existe déjà,
veuillez choisir un autre !. ");
}
else {
con.resultat("insert into
projet(code_projet,libelle_projet,nom_etabli,regime,cout_projet,date_ass,observation)
values
('"+txtcodeprojet.getText()+"','"+txtlibelleprojet.getText()+"','"+nometabli+"','"+regime+"','"+
txtcout.getText()+"','"+date_assistance+"','"+txtobs.getText()+"')");
} }
catch (Exception ex) {
JOptionPane.showMessageDialog(null,"Erreur "+ex.getMessage());
100
txtcodeprojet.setText("");
txtlibelleprojet.setText("");
txtcout.setText("");
txtobs.setText("");
txtcodeprojet.requestFocusInWindow();
jTable2.setModel(new
javax.swing.table.DefaultTableModel(listeeleve("select * from
projet"),new
String[]{"Code_projet","Libelle_projet","Nom_etabli","Regime","Cout_projet","Date_ass","
Observation"}));
}
a) Formulaire Encodage des Régimes des
établissements
C'est une interface qui nous permet de faire l'enregistrement des
régimes des établissements scolaires.
4. Etats de sortie
a. Répertoire des projets des
établissements
101
b. Répertoire des
établissements
102
|