Connexion bdd hsqldb + deconnexion

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

  Loading...
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
esc
cancel