import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* Cette classe permet d'effectuer des opérations de
* connexion et de déconnexion à une base de données.
*
* Le but est de présenter les deux méthodes de bases que sont :
* 1) se connecter à une base de données
* 2) se déconnecter d'une base de données
*
* Ces deux opérations étant élémentaires, il vaut mieux
* les maitriser correctement avant d'aller plus loin.
*/
public class BDD_Connexion {
// variables de classe
Connection connexion; // représente une connexion à une base de données
/**
* Cette fonction permet de se connecter à une base de données.
* @query : CREATE DATABASE
* (pas de requête de la sorte pour HSQLDB, il suffit de créer un fichier
* par base de données voulue)
*
* @pre pas de connexion en cours à la base
* @post la connexion est établie (s'il n'y a pas eu de problème)
* @return true si la connexion s'est correctement effectuée, false sinon
*/
public void seConnecter() {
try {
/* Ceci permet de charger un driver JDBC (voir :
* http://fr.wikipedia.org/wiki/Java_database_connectivity ).
*
* Ici, il s'agit de charger le driver fourni par HSQLDB.
*/
Class.forName("org.hsqldb.jdbcDriver").newInstance();
/* Cette ligne permet de récupérer la connexion en tant que telle
* à une base de données HSQLDB. Ici, on lui donne comme paramètre :
* file : pour dire qu'il s'agit d'une base de données en mode fichier
* (contrairement au mode "mémoire" par exemple, où la base de
* données serait contenue dans la mémoire RAM de l'ordinateur)
* database : nom de la base de données (et du fichier qui va la représenter)
* "sa" : identifiant de l'utilisateur
* "" : mot de passe (vide par défaut) de l'utilisateur
*/
connexion = DriverManager.getConnection("jdbc:hsqldb:file:database", "sa", "");
// à ce stade, la connexion devrait être établie
} catch (InstantiationException e) {
System.out.println("ERROR:InstantiationException");
} catch (IllegalAccessException e) {
System.out.println("ERROR:IllegalAccessException");
} catch (ClassNotFoundException e) {
System.out.println("ERROR:ClassNotFoundException");
} catch (SQLException e) {
System.out.println("ERROR:SQLException");
}
}
/**
* Cette fonction permet de se déconnecter d'une base de
* données.
*
* @pre il faut être connecté à la base de données
* @post la connexion est fermée (et la base de données est enregistrée sur
* le disque dur)
*
*/
public void seDeconnecter() {
try {
/* Un objet Statement sert à exécuter des requêtes SQL. Une requête SQL
* est une requête qui respecte le langage SQL. Elle permet d'interagir
* avec la base de données de manières standardisée.
* Cet "objet" un peu étrange se récupère en appelant 'createStatement()'
* sur notre objet 'connexion'.
*/
Statement statement = connexion.createStatement();
/*
* 'execute' permet... d'exécuter une requête. Ici, la requête est :
* "SHUTDOWN". Cela signifie que l'on veut couper (éteindre) la connexion
* à la base de données (en d'autres termes, c'est la façon de dire à
* HSQLDB que l'on veut se déconnecter).
*/
statement.execute("SHUTDOWN");
statement.close(); // permet de fermer la REQUÊTE, bonne pratique à avoir
connexion.close(); // permet de fermer la CONNEXION, bonne pratique à avoir
} catch (SQLException e) {
System.out.println("ERROR:SQLException");
}
}
}
Reply