Vous êtes sur la page 1sur 9

MINI PROJET EN JAVA, 2e année

Page
MINI PROJET EN JAVA, 2e année

Page 1
MINI PROJET EN JAVA, 2e année

MINI PROJET EN JAVA, 2e


année

ENONCÉ :

LES OUTILS :

Avant d’entamer tout travail sur les bases de données MySQL,


des outils doivent être installés au préalable, pour permettre
la connexion aux bases de données :

Page 2
MINI PROJET EN JAVA, 2e année

CONNEXION À LA BASE DE DONNÉES

L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de


classes JDBC, se charge de trois étapes indispensables à la connexion à une base
de données :

• la création d'une connexion à la base

• l'envoi d'instructions SQL

• l'exploitation des résultats provenant de la base

LE PACKAGE JAVA.SQL.*

Tous les objets et les méthodes relatifs aux bases de données sont présents dans
le package java.sql, il est donc indispensable d'importer java.sql.* dans tout
programme se servant de la technologie JDBC.
Le package java.sql contient les éléments suivants :

Classes Interfaces Exceptions


Date Array BatchUpdateExce
DriverManager Blob ption
CallableStatem DataTruncation
DriverPropertyI ent SQLException
nfo Clob SQLWarning
Time Connection
Timestamp DatabaseMeta
Types Data
Driver
PreparedState
ment
Ref
ResultSet

Page 3
MINI PROJET EN JAVA, 2e année

ResultSetMetaD
ata
SQLData
SQLInput
SQLOutput
Statement
Struct

CONNEXION À LA BASE DE DONNÉES

Pour se connecter à une base de données il est essentiel de charger dans un


premier temps le pilote de la base de données à laquelle on désire se connecter
grâce à un appel au DriverManager (gestionnaire de pilotes) :

Class.forName("nom.de.la.classe");

Cette instruction charge le pilote et crée une instance de cette classe. Pour se
connecter à une base de données déclarée dans l'administrateur ODBC par
exemple, il faut charger le pilote JDBC-ODBC (appelé pont JDBC-ODBC) :

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

Certains compilateurs refusant cette notation, il faut parfois appeler le driver de la


façon suivante :

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

Pour se connecter à une base de données particulière, il s'agit ensuite de créer une
instance de la classe Connection grâce à la méthode getConnection de l'objet
DriverManager en indiquant la base de données à charger à l'aide de son URL

String url = "jdbc:odbc:base_de_donnees";

Connection con = DriverManager.getConnection(url);

Le nom de la base de données (ici base_de_donnees) étant celle déclarée dans le


panneau de configuration ODBC, c'est-à-dire le nom du DSN. La syntaxe de l'URL
peut varier légèrement selon le type de la base de données. Il s'agit généralement
d'une adresse de la forme :

jdbc:sousprotocole:nom

Page 4
MINI PROJET EN JAVA, 2e année

LE CODE :

On a utilisé deux classes , le « main » et la classe « AccessBD » :

LA CLASSE ACCESSBD :

Pour la classe AccessBD, c’est la suivante :

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.util.Scanner;

Page 5
MINI PROJET EN JAVA, 2e année

public class AccessBD {

private static String bd;


private static String pass;
private static String table;
private static final String DbName = "com.mysql.jdbc.Driver";
private Scanner sc = new Scanner(System.in);

private static String variables;

private static String conn = "jdbc:mysql://localhost/";


private static String con;
private static ResultSetMetaData rsmd;
int id=0;

static Statement stmt = null;

public static Connection getConnection() {


try {
Class.forName(DbName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("Class");
e.printStackTrace();
}

con = conn + bd;

Properties p = new Properties();

p.put("user", "root");
p.put("password", pass);

Connection c = null;
try {
c = DriverManager.getConnection(con, p);
stmt = c.createStatement();

} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("heySQL");
e.printStackTrace();
}

System.out.println("Connection Estabilished");

return c;

public void descDatabase() {

try {
ResultSet rs = null;

stmt.executeQuery("show tables;");
rs = stmt.getResultSet();
System.out.println("Les tables de "+ getBd() + " sont : ");

while(rs.next()) {
System.out.println("\t - " + rs.getString(1));
}

System.out.print("Entrer le nom de la table : ");


table = sc.next();

stmt.executeQuery("desc " + this.getTable());


rs = stmt.getResultSet();
rsmd = rs.getMetaData();

System.out.print("\n********************************************************************************\n*");
for( int i = 1;i<= rsmd.getColumnCount();i++){
System.out.print("\t" + rsmd.getColumnName(i) + "\t*");
}

Page 6
MINI PROJET EN JAVA, 2e année

System.out.print("\n*********************************************************************************\n");
while(rs.next()){
for( int i = 1;i<= rsmd.getColumnCount();i++){
System.out.print("|\t" + rs.getString(i) + "\t");
}
System.out.print("\n|-----------------------------------------------------|\n");
}

System.out.print("Entrer les noms de colonnes a afficher separes d'une virgule: ");


variables = sc.next();

stmt.executeQuery("SELECT " + this.variables + " FROM " + this.getTable());


rs = stmt.getResultSet();
rsmd = rs.getMetaData();

System.out.print("\n********************************************************************************\n*");
for( int i = 1;i<= rsmd.getColumnCount();i++){
System.out.print("\t" + rsmd.getColumnName(i) + "\t*");
}

System.out.print("\n*********************************************************************************\n");
while(rs.next()){
for( int i = 1;i<= rsmd.getColumnCount();i++){
System.out.print("|\t" + rs.getString(i) + "\t");
}
System.out.print("\n|-----------------------------------------------------|\n");
}

}
catch(SQLException e) {

}
public String getBd() {
return bd;
}

public static void setBd(String b) {


bd = b;
}

public String getPass() {


return pass;
}

public void setPass(String p) {


pass = p;
}
public static String getTable() {
return table;
}

public static void setTable(String table) {


AccessBD.table = table;
}

public static String getDbName() {


return DbName;
}

LA CLASSE MAIN :

Page 7
MINI PROJET EN JAVA, 2e année

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Scanner;

public class Main {

private static Scanner sc = new Scanner(System.in);


public static void main(String[] args) throwsClassNotFoundException, SQLException {

AccessBD a = new AccessBD();


System.out.print("Enter le nom de la Base de Donnée : ");

a.setBd(sc.next());

System.out.print("Enter le mot de passe : ");


a.setPass(sc.next());

Connection c = AccessBD.getConnection();

a.descDatabase();
}
}

Page 8