ABCSITE

INFORMATIQUE

 
 
 

 
 

 Java 

Java DataBase Connectivity


Le package JDBC (Java DataBase Connectivity) va nous permettre de facilement interroger une base de données relationnelles via une application écrite en Java. Une chose essentielle est à faire pour que cela puisse fonctionner : il vous faut charger une classe dans la JVM qui va vous permettre de dialoguer avec un driver qui vous donnera accès à un serveur d'une base de données quelconques : pourquoi pas ODBC.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


Établir une connexion

Une fois cela fait, vous pouvez alors établir une connexion à la base de données. Pour ce faire, on utilise la méthode getConnection sur la classe DriverManager.

Connection con = DriverManager.getConnection(URL url,String user,String pwd);
// ou URL est de type jdbc:odbc://sql.evol.fr/dsn


Mettre à jour la base de données

Maintenant que la connexion est établie (ie aucune exception n'à été levée) on peut y générer des requêtes dans le but de construire, ou de mettre à jour votre base.

Statement requete = con.createStatement();
requete.executeUpdate("create table pers (name varchar2(10), num interger");
requete.executeUpdate("insert into pers values ('Moa', 15)");
requete.executeUpdate("insert into pers values ('toa', 16)");
con.close();


Interrogation de la base

Vous pouvez aussi lancer une requête d'interrogation. La différence est que maintenant, on doit récupérer des données de la base : c'est-à-dire plusieurs ligne et plusieurs colonnes. L'exemple suivant montre un exemple de récupération des résultats.

ResultSet resultat = requete.executeQuery("select name, num from pers");
while(resultat.next()) {
System.out.println("name = " + resultat.getString(1) +
"num = " + resultat.getInt(2));


A la vue de cet exemple, il est bien clair que la connaissance des types de données de la table interrogée doit être connue par avance, sans quoi aucune récupération ne sera possible. Nous avons à notre disposition les méthodes suivantes.

boolean getBoolean(int); boolean getBoolean(String);
byte getByte(int); byte getByte(String);
Date getDate(int); Date getDate(String);
double getDouble(int); double getDouble(String);
float getFloat(int); float getFloat(String);
int getInt(int); int getInt(String);
long getLong(int); long getLong(String);
short getShort(int); short getShort(String);
String getString(int); String getString(String);


Il vous de plus possible de récupérer des informations liées à la nature des colonnes de la table. L'exemple suivant fait cela.

ResultSet result = requete.executeQuery("select * from pers");
ResultSetMetaData meta = res.getMetaData();
int columns = meta.getColumnCount();
boolean isRO1 = isReadOnly(1);

 

int getColumnDisplaySize(int);
String getColumnName(int);
String getColumnTypeName(int);
boolean isNullable(int);
boolean isReadOnly(int);
 
 

ABCSITE © copyright 2002