Beruflich Dokumente
Kultur Dokumente
Interprété
- Un programme java n’est pas compilé en code machine mais
transformé en code intermédiaire interprété.
Ouvert
- Connexion aux bases de données intégrée (JDBC)
- Support des caractères internationaux
- …
MonProg.c
MonProg.o
010110…
1.0 212 8
Commentaires
Trois notations sont admises pour l’insertion de
commentaire :
¾ // commentaire sur une ligne.
¾ /* commentaire sur
plusieurs
lignes */
Exemple:
{
x=2; {x=2;y=10;}
y=10;
}
Exemple:
Int x=2;
Long y=3L;
Exemple :
2.3F
2.3
2.3E4
4F
Exemple :
int x=0, y=0;
float z=2.3F;
double t=2.3;
char c=‘r’;
Exemple :
final double PI=3.14;
La partie else est optionnelle et peut être omise s’il n’y a pas d’actions a
effectuer lorsque la condition est fausse.
Exemple :
int i=2; boolean fin;
if(i<0)
{fin=true; i=0;}
else i++;
C’est équivalent à :
If(condition)
si_test_vrai
Else
si_test_faux
Exemple:
int a=1,b=3;
int min=(a<b)?a:b; //parenthèse facultatives
Exemple:
int i=0;
System.out.println(‘‘je sais compter jusqu’a 10’’);
while (i<10)
{
System.out.println(i);
i++;
}
Exemple:
int i=10;
System.out.println(‘‘je sais compter jusqu’a 10 a l’envers’’);
do
{
System.out.println(i);
i--;
}
while(i>=0);
Exemple:
for (int i=0;i<=10;i++)
System.out.println(i);
Classes
class BankAccount, class RacingBike
Interfaces
interface Account
Méthodes
deposer() getName()
Packages
package coursJava
Variables
int accountNumber; int x
Constantes
MAXIMUM_SIZE
Ex: un poste de télé est une boite noire ayant pour interface :
une télécommande , écran, haut parleurs. Pour changer de
chaîne il suffit de demander à la boite noire de le faire pour
nous en appuyant sur un bouton.
On dit qu’un objet est encapsulé par son interface Î la seule façon de
communiquer avec cet objet et d’invoquer une des méthodes de son
interface.
Tables Chaises
Exemple:
¾ On peut modéliser une personne par l’objet Personne. Les attributs sont alors
les informations concernant la personne (nom, prénom, tel,…). Et comme
méthode on aurait par exemple calcul_Age, calcul_salaire…
Une classe en java est définie en précisant son nom, en déclarant ces
attributs et en définissant ses méthodes.
Syntaxe:
Class nom_classe
{
// déclaration des attributs
// déclaration des méthodes
}
Exemple:
class Rectangle
{
//déclaration attributs
int long;
int larg;
// autres attributs éventuels
//déclaration des fonctions
void allongerRectangle(int lg)
{ longueur+=lg;}
//… autres méthodes
}
Constructeur de classe
Un constructeur est une méthode particulière appelée
au moment de la création d’un objet. Son rôle est
d’initialiser l’objet en fonction des paramètres fournis
par l’utilisateur.
Ex:
Rectangle(int lg,int larg) {
longueur=lg; largeur=larg;
}
Constructeur de classe
Une classe peut avoir plus qu’un constructeur
Ex:
Rectangle (int lg,int larg) {
longueur=lg; largeur=larg;
}
Rectangle () {
longueur=0; largeur=0;
}
Utiliser un objet
¾ Accès à un attribut :
L’accès direct à un attribut dans une classe se fait toujours à
l’intérieur d’une méthode.
Si on voudrait utiliser les attributs à l’extérieur de la classe,
alors on crée un objet de la classe puis on applique cette
syntaxe:
<nom_Objet>.<Nom_Attribut>
Class Test
{public static void main (String[] args){
Rectangle r=new Rectangle();
r.longueur=10; //instruction erronée}
}
Les références :
¾ Ce sont les variables qui permettent de désigner et manipuler les objets.
¾ Les seuls opérateurs sur les références sont des opérateurs logiques:
==: teste si 2 références désignent le même objet.
!= : teste si 2 référence ne désignent pas le même objet
instanceof : retourne true si l’objet à gauche est une instance de la classe placée
à sa droite ou si la comparaison est faite entre un objet d’une classe implémentant
une interface et cette interface . Sinon il retourne false.
¾ Ex :
Class Rectangle
{ private int longueur; private int largeur;
// déclaration des méthodes…
}
Class Test
{public static void main (String[] args){
Rectangle r=new Rectangle();
boolean val1=r instanceof Rectangle;//val=true
boolean val2=r instanceof Test;//val=false
}}
La référence this :
¾ Le mot clé this représente une référence sur l’objet courant (celui qui est en
train d’exécuter la méthode contenant le this).
¾ La référence this peut être utile :
Lorsqu’une variable locale ou un paramètre de fonction porte le même nom d'un
attribut de la classe.
Pour déclencher un constructeur depuis un autre constructeur.
¾ Ex :
Class Date
{
int jour=1, mois=1, an=1990;
Date()
{an=2000; /* peut s’écrire : this.an=2000 (facultatif)*/}
Date(int an)
{this.an=an; /*pour pouvoir accéder à l'attribut de la classe (obligatoire)*/}
Date(int an, int mois, int jour)
{this.jour=jour;
this.mois=mois;
this(an); /* Appel du deuxième constructeur*/}
}
La référence null :
¾ Le mot clé null permet de représenter la référence qui ne représente
rien.
¾ On peut assigner cette valeur a n’importe quelle variable ou attribut
contenant une référence.
¾ C’est aussi la valeur par défaut d’initialisation des attributs
représentant des références.
¾ Ex :
Class Test
{
Voiture v1; //initialisation a null par défaut.
void methode()
{
…
if (v1==null) v1=new Voiture();
…
}
}
Y.Naïja en collaboration avec M.S Bouhlel Cours POO 54
Objets, Classes
¾ Ex :
class Test
{ int val=11;
public void modif(int n) { n=22; }
Attributs de classe:
¾ C’est un attribut marqué par le mot clé static.
¾ Le mot clé static , utilisé pour un attribut, permet
d’indiquer que cet attribut est commun à tous les objets
de la classe concernée Î si on modifie cet attribut pour
un objet donné, il sera modifié pour tous les objets de la
classe.
public static void main (String[] args){
¾ Ex :
Voiture V1=new Voiture();
class Voiture Voiture V2=new Voiture();
{ static int count =0; System.out.println(V1.count);
count
int id; V1.count=55;
voiture(){ 22
55
1
2 System.out.println(V2.count);
Voiture.count=22;
count++;
System.out.println(V1.count);
id=count; }
} }
Y.Naïja en collaboration avec M.S Bouhlel Cours POO 58
Objets, Classes
Attributs de classe:
¾ On accède à un attribut statique :
Via une instance quelconque de la classe : V1.id
Via le nom de la classe : Voiture.id
Méthodes de classe:
¾ Une méthode de classe est une méthode de type static.
Méthodes de classe:
¾ Une méthode statique ne peut pas avoir de référence
this car elle peut être appelée sans l’intermédiaire d’un
objet.
Autres remarques
¾ Toute classe est une classe fille de la classe
prédéfinie Object
¾ Toute classe hérite des méthodes de la
classe Object
¾ Méthode prédéfinie toString de la classe
Object :
Prototype public String toString();
Est utilisée générement pour retourner les valeurs
des données membres de l'objet appelant.
class test{
public static void main(String []args){
Date d=new Date(5, 12, 2006);
System.out.println(d.toString()); // ou System.out.println(d);
}
}
¾ Déclaration :
<type> <nomTableau>[ ]; ou
<type> [ ]<nomTableau>;
¾ Exemples:
int notes[]; // tableau entiers
char[] lettres; //tableau de caractères
short t1[100]; //instruction illégale car il n’est pas
//possible de définir un tableau de
//taille fixe à la déclaration.
¾ Allocation mémoire :
la déclaration ne fait que réserver l’espace mémoire allant contenir
l’adresse du tableau. Cette place mémoire est identifié par le nom du
tableau.
l’allocation mémoire des cases du tableau se fait par le mot clé new :
<nomTableau> = new <Type>[<dimension>];
¾ Exemple :
int []notes;
notes = new int[3]; Déclaration Allocation
notes Ox123
Ox123
¾ Initialisation:
Lorsqu’un tableau est créé. Chacun de ces éléments est initialisé.
Cette initialisation se fait a 0 si les éléments sont des entiers ou
des réels, à false s’ils sont des booléens et à null sinon.
¾ Exemples:
int []tab={3, 5, 7}; // c’est équivalent a faire
int []tab=new int[3]; tab[0]=3; tab[1]=5; tab[2]=7;
¾ Utilisation:
in[] tab=new int[10];
tab[0]=1;
tab[10]=2;// erreur à la compilation
Exemple :
créer une matrice carré :
int [][] matrice= new int[2][2];
matrice[0][0]=1; matrice[0][1]=1;
matrice[1][0]=1; matrice[1][1]=1;
2. 2ème méthode
<type> [ ][ ]<nomTableau>=new <type> [N1][ ];
<nomTableau>[0]=new <type>[N21];
<nomTableau>[0]=new <type>[N22];…
Exemples:
Int[][] notes=new int[3][];
notes[0]=new int[3];
notes[1]=new int[2];
notes[2]=new int[1];
¾ Exemple:
int[][] tab={{1,0,9},{2,8},{8,5,7}};
tab.lengthÎ3
tab[1].lengthÎ2
Exercice :
1. Écrire une méthode qui permet de faire un affichage de ce genre:
String est une classe qui est fourni avec l’API Java pour la
manipulation de chaînes de caractères
Introduction :
Introduction :
class DateEvenement
{ int jour, mois, année;
String evenement;
Introduction :
Ex.
class DateEvenement extends Date
{
String evenement;
…
public String quelEvent()
{return evenement;}
}
¾ Dans le cas où un tel constructeur n'existe pas dans la classe de base, une
erreur de compilation est générée. Il existe un cas où l'absence de
l'instruction super(...) ne conduit pas à cet appel implicite : celui où le corps
du constructeur commence par l'instruction this(...).
Enchainement de constructeur :
¾ La classe Object est la mère de toutes les classes ; toute classe est
dérivée directement ou indirectement de la classe Object.
Si l'on définit un champ dans la sous classe ayant le même nom qu'un
champ de la classe de base, il existera deux champs de même noms :
¾ Le nom de champ désignera toujours le champ déclaré dans la classe
dérivée.
¾ Pour avoir accès au champ de la classe de base, il faudra changer le type
de la référence pointant sur l'objet ou en utilisant le mot clé super.
class B extends A {
class A public int i ;
{ ...
public int i ; public void uneMethode() {
... i = 0 ; // i est le champ défini dans la classe B
} this.i = 0 ; // i est le champ défini dans la classe B
super.i = 1 ; // i est le champ défini dans la classe A
( (A) this ).i = 1 // i est le champ défini dans la classe A
…}}
Y.Naïja en collaboration avec M.S Bouhlel Cours POO 86
Héritage
Tout comme l'utilisation du mot clé this, le mot clé super ne peut pas être
utilisé dans les méthodes static.
Y.Naïja en collaboration avec M.S Bouhlel Cours POO 87
Héritage
Redéfinition des méthodes:
On n'est, évidemment pas, tenu de déclarer des nouveaux champs dans une classe
dérivée : il est possible que l'on dérive une classe pour uniquement modifier les
méthodes de la classe de base.
Par exemple, si l'on voulait une nouvelle classe DateAnglais qui ne diffère de la
classe Date que par le format d'impression de la date, il suffirait de définir une classe
dérivée de la classe Date et de redéfinir la méthode imprimer pour cette nouvelle
classe.
Méthode static:
Une méthode static peut également être redéfinie par une autre méthode
static. Par contre, une méthode static ne peut être redéfinie en une méthode
non static.
Méthode final:
Une méthode final est une méthode qui ne peut être redéfinie dans aucune
sous classe.
Exemple :
class Date {
private int jour, mois, année ;
public final int retouneJour() { return jour ; }
... }
Classe Final
Une classe final est une classe qui ne peut pas
être dérviée.
final class A{
…
}
class B extends A {
…
}
La classe Object :
• C’est la classe de base de toutes les classe Java.
• Les méthodes définis dans cette classe peuvent alors être utilisées
ou redéfinies.
• Exemples de méthodes :
public String toString()
public boolean equals(Object obj)
public final native Class getClass()
public native int hashCode()
protected native Object clone()
protected void finalize() throws Throwable
public final native void notify()
public final native void notifyAll()
public final native void wait(long timeout)throws InterruptedException
public final void wait(long timeout, int nanos)throws InterruptedException
public final void wait()throws InterruptedException
La classe Object :
Exemple
class Date
{
int jour=1, mois=1, an=1990;
Date (int j, int m, int a){ jour=j; mois=m; an=a;}
class test{
public static void main(String []args){
Date d=new Date(5, 12, 2006);
System.out.println(d.toString()); // ou System.out.println(d);
}
}
La classe Object :
¾public boolean equals (Object obj)
La méthode equals rend la valeur true si l'objet sur
lequel la méthode equals est invoquée est égale à
l'objet passé en paramètre.
Î Qu'est ce que l'égalité ? La notion de l'égalité
dépend des objets concernés. Par défaut, la
sémantique de la méthode equals fournie dans la
classe Object est l'égalité entre les valeurs des
références : les deux références désignent le même
objet.
On peut parfois utiliser les classes pour définir, non pas un type d'objet
bien précis, mais un concept.
Forme
Carré Cercle
Par contre, une fois connue une forme précise (un carré, un cercle, etc.),
on sait implanter cette méthode pour cette forme.
Si l'on définit une sous classe sans implanter toutes les méthodes
abstraites de la classe de base, une erreur de compilation est générée.
Introduction :
Le langage Java ne permet pas l'héritage multiple. Il palie ce manque par
l'introduction des interfaces. Le choix délibéré de Java de supprimer
l'héritage multiple est dicté par un souci de simplicité.
Pour supprimer les problèmes liés à l'héritage multiple, les interfaces sont
des ``sortes de classes'' qui ne possèdent que des champs static final
(autant dire des constantes) et des méthodes abstraites.
En fait, les interfaces sont un moyen de préciser les services qu'une classe
peut rendre.
On dira qu'une classe implante une interface Z si cette classe fournit les
implantations des méthodes déclarées dans l'interface Z.
Toutes les méthodes sont public et abstract, les mots clés public et
abstract n'apparaissent pas : ils sont implicites.
Tous les attributs d'une interface sont public, static et final. Ils sont
là pour définir des constantes qui sont parfois utilisées dans les
méthodes de l'interface. Les mots clés static et final et public ne
figurent pas dans la définition des champs ; ils sont implicites.
Exemple :
La syntaxe de la déclaration d'une interface est la suivante :
interface Service
{
int MAX = 1024 ;
...
int une_méthode(...) ;
...
}
Y.Naïja en collaboration avec M.S Bouhlel Cours POO 102
Interface
Interface publique :
Interface dérivé :
¾Mais, contrairement aux classes, une interface peut étendre
plusieurs interfaces.
interface A extends B {
...
}
interface A extends B, C, D {
...
}
Exemple :
interface A { int info = 1; }
interface B extends A { int info = 2; }
Héritage diamant :
¾ Un même champ peut être hérité de plusieurs manières
pour une même interface
¾ Exemple :
interface A { char infoA = 'A'; }
interface B extends A { char infoB = 'B'; }
interface C extends A { char infoC = 'C'; }
interface D extends B, C { char infoD = 'D'; }
Introduction :
¾ Lorsqu'on veut utiliser une classe d'un package, le moyen le plus direct est de
nommer cette classe par son nom absolu (fully qualified name) :
CoursJava.monpackage.Date d ;
d = new CoursJava.monpackage.Date(15, 9, 57) ;
¾ On aura compris que cette manière de faire est bien trop fastidieuse pour qu'on
s'en contente.
Une fois cette classe importée, on pourra désormais utiliser les noms simplifiés
pour les classes importées.
Date d = new Date(15, 9, 57) ;
Visibilité :
public
¾ Une classe peut être définie à l’intérieur d’une autre classe. Elle
constitue un membre à part entière des classes d’inclusion au même
titre que les méthodes ou les variables.
¾ Une classe interne peut être déclarée avec n’importe quel modificateur
d’accès (public, protected, par défault ou private) et les modificateurs
spéciaux final, abstract et static.
class ClasseParente
{
int x = 10; int y = 12;
private int addition()
{ return (x + y); }
class ClasseInterne
{
void verification()
{ if((x + y)== addition())
System.out.println("La classe interne a bien accédé aux membres de sa
classe parente.");
}}
class Externe {
int x = 10; int y = 12;
Externe(){ new Interne(); }
class Interne {
int x = 8; int y = 14;
Interne() {
if (this.x + this.y == Externe.this.x + Externe.this.y)
System.out.println( "La classe interne a bien accédé à l'ensemble des
membres des classes imbriquées.");
}
}
}
Seules les variables locales et les paramètres de la méthode d'inclusion, déclarées avec le
modificateur final, peuvent être exploitées par les classes internes locales, sinon une erreur se
produit lors de la compilation. De plus, ces variables doivent être impérativement assignées
avant leur emploi dans la classe locale.
ClasseLocale obj_in = new ClasseLocale();
class ClasseExterne { if (obj_in.verification()){
int x = 10; int y = 12;
x = x + y;
// Paramètre constant utilisable par la classe locale
ClasseExterne(final int p) System.out.println("La classe interne a
{ bien accédé aux membres de la classe
// Constante utilisable par la classe locale extérieure. nx = " + x + "ny = " + y +
final int a = 20; "na = " + a);
// Variable inutilisable par la classe locale }
int b = 44; else
class ClasseLocale {
System.out.println("Erreur !");
boolean verification(){
if(x + y == a + p) }
return true;
else public static void main(String[] args){
return false; ClasseExterne obj_out = new
}} ClasseExterne(2);
}}
Y.Naïja en collaboration avec M.S Bouhlel Cours POO 121
Classe Interne
class ClasseExterne {
if (obj_in.verification())
static int x = 10;
{ x = x + y;
static int y = 12;
System.out.println("La classe interne
static int z = x + y;
accede aux membres statiques de
static void addition(){ la
class ClasseLocale { classe");}
boolean verification() else
{ if(x + y == z) System.out.println("Erreur !");
return true; }
else
return false; public static void main (String[] args)
}} { addition(); }
}
ClasseLocale obj_in = new ClasseLocale();
¾ Elles sont interprétée par le compilateur comme étant une classe à part
entière.
class ClasseExterne {
static int x = 10; static int y = 12;
obj.addition();
obj.soustraction();
public static void main(String[]
args){ obj.multiplication();
obj.division();
ICalcul obj = new ICalcul() { }
public float addition() }
{ return (x + y); }
public float soustraction() interface ICalcul {
{ return (x - y); } float addition();
public float multiplication() float soustraction();
{ return x * y; } float multiplication();
public float division() float division();
{ }
if(y != 0) return x / y;
else return 0;
}
}; en collaboration avec M.S Bouhlel
Y.Naïja Cours POO 130
Classes de base
Classe Vector
Quelques méthodes :
Constructeurs : ex. Vector v=new Vector()
void addElement(Object obj) : ajout de obj à la fin
void insertElementAt(Object obj, int i) : insertion de obj à la
position i
void removeElementAt(int i) : suppression de l'élémént à la
position i
void removeAllElements() : suppression de tous les
éléments
Object elementAT(int i) : retourne (sans le supprimer)
l'élément à la position i
Quelques méthodes :
void setElementAt(Object obj,int i) : place l'objet à la
position i( en remplaçant l'ancien objet
boolean contains(Object obj) : retourne true si obj est
dans le tableau
int indexOf(Object obj) : retourne la position de obj (-1 si
obj n'est pas présente)
int size() : retourne la taille du vecteur
Exemple d'utilisation
class test{
public class carre{
public static void main (String[] args){
private Int cote; Carre c1=new Carre(5);
public cote(int c){ Carre c2=new Carre(10);
cote=c Vector v=new Vector();
v.addElement(c1);
}
v.addElement(c2);
public int getCote(){ for(int i=0; i<v.size(); i++){
return cote; int a=( (Carre)
v.elementAt(i)).getCote().
}
System.out.println(a);
} }
}
Quelques méthodes
Boolean hasMoreTokens() : retourne true
s'il y a encore des mots à traiter sinon
false
String nextToken() : retourne la prochaine
sous chaîne dans la chaîne à découper.
Class test(){
static void afficheMots(String s){
StringTokenizer st=new StringTokenizer(s, " ,:.")
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}
}
}
Le traitement de l'erreur pourrait consister à retourner une valeur: -1 pour une division par
zéro, -2 pour un index qui déborde etc. Ce traitement devient fastidieux à la longue !
traitement A
if (!traitement_A) méthodes de correction
else
traitement_B
if (!traitement_B) méthodes de correction
else
etc.
Le langage Java offre un mécanisme très souple pour la gestion des erreurs. Ce
mécanisme permet d'isoler d'une part la partie du code générant l'erreur du reste
du programme, et d'autre part de dissocier les opérations de détection et de
traitement de cette erreur.
Par ailleurs, le langage Java utilise des objets pour représenter les erreurs
(exceptions) et l'héritage pour hiérarchiser les différents types d'exception.
Object
Throwable
Error Exception
IllegalAccessException IOEcxeption
LinkageError
NoSuchMethodException
ThreadDeath RuntimeException
VirtualMachineError IndexOutOfBoundsException
NumberFormatException NullPointerException
ArithmeticException
2. Capturons l’exception
Object
Throwable
Error Exception
IllegalAccessException IOEcxeption
LinkageError
NoSuchMethodException
ThreadDeath RuntimeException
VirtualMachineError IndexOutOfBoundsException
NumberFormatException NullPointerException
ArithmeticException
class Factorielle
{
public int calcul(int x)
{
if(x==0)
La solutionreturn 1;
est simple,
else return
tu t’es trompé :x*calcul(x-1);
tu as
tapé -5 au lieu de 5.
} Fais attention la
Mais,
publicprochaine
static fois
void!!!
main(String[] args) pourquoi ça
{ plante …!!!
Que faire ?
Si je me trompe
encore une fois ?
Quelqu’un peut-il
m’aider?
C’est tout???
C’est facile alors !!!
Non !!!!
Il manque une
dernière étape???
Object
Throwable
Error Exception
IllegalAccessException IOEcxeption
LinkageError
NoSuchMethodException
ThreadDeath RuntimeException
VirtualMachineError IndexOutOfBoundsException
NumberFormatException NullPointerException
ArithmeticException
catch (ArithmeticException e) {
System.out.println("Cette exception peut être capturée"); }
catch (Exception e){
System.out.println("Aère exception capturèe");
}
First :
¾ System : La classe System possède les variables statiques in,
out et err qui sont connectées aux trois flots du système avant que le
programme commence son exécution
PrintStream out
Flot standard de sortie
InputStream in
Flot standard d’entrée
PrintStream err
Flot standard de sortie d’erreur
2ème possibilité
¾ …
Et maintenant pour
voir si vous avez
compris.
¾ …
DriverManager
Chargement du driver de la BD.
contient la requète
SQL et la transmet à
la base de données.
Connexion à la base de
charge et configure Connection
données.
permet de parcourir lesla base
le driver de
informations retournées par
de données.
la base de données dans le
cas d'une sélection de
Exécution des commandes
données
SQL. Statement
réalise la connexion
et l'authentification à
Inspection des résultats
la base (si
de données.
ResultSet
disponible).
Application java
Driver JDBC
Driver ODBC
SGBD
Application java
Partie JAVA
Driver
Partie Native
SGBD
Application java
Driver en JAVA
SGBD
Application java
Driver en JAVA
SGBD
1. Chargement du driver
Pour se connecter à une base de données via
ODBC, il faut tout d'abord charger le pilote JDBC-
ODBC qui fait le lien entre les deux.
¾ Utiliser la méthode forName de la classe Class :
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver
");
1. Chargement du driver
2. Etablissement de la connexion
Pour se connecter à une base de données, il faut instancier
un objet de la classe Connection en lui précisant sous forme
d'URL la base à accéder.
2. Etablissement de la connexion
Exemple :
String dbURL=‘‘ jdbc : odbc : test ’’
Connection con = DriverManager.getConnection(dbURL);
2. Etablissement de la connexion
String dbURL=‘‘ jdbc : odbc : test ’’
2. Etablissement de la connexion
2. Etablissement de la connexion
4. Inspection du résultat
L’instruction :
4. Inspection du résultat
Les principales méthodes de la classe ResultSet sont :
¾ getInt(int) / getInt(String) : retourne le contenu de la colonne dont
le numéro / nom est passé en paramètre sous forme d'entier.
¾ getFloat(int) / getFloat(String) : retourne le contenu de la colonne
dont le numéro / nom est passé en paramètre sous forme de nombre
flottant.
¾ getDate(int) / getDate(String) : retourne le contenu de la colonne
dont le numéro / nom est passé en paramètre sous forme de date.
¾ next() : se déplace sur le prochain enregistrement : retourne false si
la fin est atteinte.
¾ Close() : ferme le ResultSet
¾ getMetaData() : retourne un objet ResultSetMetaData associé au
ResultSet.
4. Inspection du résultat
La méthode next() déplace le curseur sur le prochain
enregistrement.
Soit la table
personne suivante :
5. fermeture
Une fois le travail terminer on ferme toutes les connexions
ouvertes.
Exemple :
try {
rs.close();
stmt.close();
con.close();
} catch(SQLException e){}
Exemple Complet :
import java.sql.*;
class Test {
public static void main(String[] args) {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e)
{System.out.println("impossible de charger le drivers");}
try {
String url="jdbc:odbc:test";
con=DriverManager.getConnection(url,"","");
}catch(SQLException e)
{System.out.println("impossible de crèer une connexion");}