1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
| /*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package ds.prp.Db;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Thomas
*/
public class DataBase {
/* Paramètres */
private String urlDB = null;
private Connection connexion = null;
private Statement stat = null;
private ResultSet result = null;
/**
*
* Le constructeur sert à mettre en place le lien de la base de donnée à laquelle on souhaîte se connecter.
*
* @param url url de la base de donnée à laquelle on souhaîte se connecter.
*
*/
public DataBase(String url){
this.urlDB = url;
}
/**
*
* Permet de se connecter à la base de données dont l'url est donnée dans le constructeur. <br/>
* pas de paramètre.
*
*/
public void connect(){
try {
// Chargement des drivers SQLite
Class.forName("org.sqlite.JDBC");
System.out.println("Drivers chargés avec succès !");
// Mise en place de la connexion avec la base de données
this.connexion = DriverManager.getConnection("jdbc:sqlite:" + this.urlDB);
// Mise en place du curseur qui permettra de réaliser des requêtes
this.stat = this.connexion.createStatement();
System.out.println("Connexion réussi à : " + this.urlDB);
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(DataBase.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
*
* Ferme la connexion à la base de données actuellement en cour. <br/>
* Pas de paramètre.
*
*/
public void disconnect(){
try {
this.connexion.close();
System.out.println("Déconnexion réussi !");
} catch (SQLException ex) {
Logger.getLogger(DataBase.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
*
* Permet de changer l'url de la base de donnée à laquelle on doit se connecter sans pour autant devoir
* recréer l'objet.<br/><br/>
*
* il est conseillé d'utiliser la méthode reconnect() suite au changement d'url.
*
* @param newUrl nouvel url.
*
*/
public void setURL(String newUrl){
this.urlDB = newUrl;
}
public void reconnect(){
/* DECONNEXION DE LA BASE DE DONNEES ACTUELLE */
try {
this.connexion.close();
System.out.println("Déconnexion réussi !");
} catch (SQLException ex) {
Logger.getLogger(DataBase.class.getName()).log(Level.SEVERE, null, ex);
}
/* RECONNEXION A LA BASE DE DONNEES */
try {
// Chargement des drivers SQLite
Class.forName("org.sqlite.JDBC");
System.out.println("Drivers chargés avec succès !");
// Mise en place de la connexion avec la base de données
this.connexion = DriverManager.getConnection("jdbc:sqlite:" + this.urlDB);
// Mise en place du curseur qui permettra de réaliser des requêtes
this.stat = this.connexion.createStatement();
System.out.println("Connexion réussi à : " + this.urlDB);
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(DataBase.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
*
* Permet de faire une requête de collecte de donnée. <br/>
* <b>NE JAMAIS FAIRE UNE REQUETE D'AJOUT OU DE MISE A JOUR DE DONNEES /!\</b> pour cela utiliser
* la méthode updateQuery() !
*
* @param request la requête voulu.
*
*/
public ResultSet selectQuery(String request){
try {
this.result = this.stat.executeQuery(request);
} catch (SQLException ex) {
Logger.getLogger(DataBase.class.getName()).log(Level.SEVERE, null, ex);
}
return this.result;
}
/**
*
* Permet de faire une requête d'ajout ou de mise à jour de données.
*
* @param request la requête voulu.
* @return true si la requête à correctement été envoyé et false si non.
*
*/
public boolean updateQuery(String request){
try {
this.stat.executeUpdate(request);
return true;
} catch (SQLException ex) {
Logger.getLogger(DataBase.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
}
} |
Partager