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
| /*
* ConnectionJDBC.java
*
* Created on 2 juillet 2005, 11:03
*/
package connectjdbc;
import java.sql.*;
import java.lang.*;
import java.util.*;
/**
* Classe ConnectionJDBC.<p>
* Le constructeur charge le pilote, appelle les méthodes de création
* de la connection et du statement.
* Toutes ces méhodes de création sont privées.
*
* Ensuite, la méthode public setQuery(String Requete) permet
* d'effectuer des requêtes sur la base de données.
*
*
*/
public class ConnectionJDBC {
private String URL;
private Connection connection;
private Statement statement;
int index[];
/**
* Crée une nouvelle instance de ConnectionJDBC
* et charge le pilote par défaut sun.jdbc.odbc.JdbcOdbcDriver
* @param URL chaîne de connection
* @exception ClassNotFoundException si le pilote ne peut être chargé
* @exception SQLException si la connection à la base échoue
*/
public ConnectionJDBC(String URL) throws
ClassNotFoundException, SQLException {
this("sun.jdbc.odbc.JdbcOdbcDriver", URL);
}
/**
* Crée une nouvelle instance de ConnectionJDBC
* @param driver pilote à charger
* @param URL chaîne de connection
* @exception ClassNotFoundException si le pilote ne peut être chargé
* @exception SQLException si la connection à la base échoue
*/
public ConnectionJDBC(String driver, String URL) throws
ClassNotFoundException, SQLException {
this(driver, URL, null, null);
}
/**
* Crée une nouvelle instance de ConnectionJDBC
* @param driver pilote à charger
* @param URL chaîne de connection
* @param user Utilisateur
* @param password Mot de Passe
* @exception ClassNotFoundException si le pilote ne peut être chargé
* @exception SQLException si la connection à la base échoue
*/
public ConnectionJDBC(String driver, String URL, String user, String password)
throws ClassNotFoundException, SQLException {
this.URL = URL;
index=new int[10];
try{
Class.forName(driver);
}
catch (ClassNotFoundException ex){
System.err.println("Erreur dans le chargement du pilote " +
driver + " : " + ex);
throw ex;
}
connection = createConnection(URL, user, password);
printInfoDB(connection);
statement = createStatement(connection);
}
/**
* Etabli une connection à la base de données
* @param URL Chaîne de connection
* @param user Utilisateur
* @param password Mot de Passe
* @return la connection à la base de données
* @exception SQLException si la connection à la base échoue
*/
private Connection createConnection(String URL, String user, String password)
throws SQLException {
try {
return DriverManager.getConnection(URL, user, password);
}
catch (SQLException ex){
System.err.println("Erreur de connection à la base de données " +
URL + " : " + ex);
throw ex;
}
}
/**
* Affiche sur la sortie standard les infos de la base de données
* @param connection La connection à la base de données
*/
private void printInfoDB(Connection connection) {
try {
DatabaseMetaData metaData = connection.getMetaData();
System.out.println(metaData.getDatabaseProductName());
System.out.println(metaData.getDatabaseProductVersion());
System.out.println(metaData.getDriverName());
}
catch (SQLException ex) {
System.err.println("Impossible d'obtenir les infos " +
"de la base de données " + URL + " : " + ex);
}
}
/**
* Crée un statement pour la connection donnée
* @param connection la connection à la base de données
* @return le statement créé
* @exception SQLException si la création du statement échoue
*/
private Statement createStatement(Connection connection) throws SQLException {
try {
return connection.createStatement();
}
catch (SQLException ex){
System.err.println("Impossible de créer le statement " +
"pour la base de données " + URL + " : " + ex);
throw ex;
}
}
/**
* Exécute une requête
* @param query la requête à exécuter
* @return le résultat de la requête
* @exception SQLException si l'exécution de la requête échoue
*/
public ResultSet executeQuery(String query) throws SQLException {
ResultSet resultQuery;
Ref resultat;
int index=0;
try {
resultQuery=statement.executeQuery(query);
while(resultQuery.next()) {
index=resultQuery.getRow();
System.out.println(" "+resultQuery.getString(1)+" "+resultQuery.getString(2));
}
return resultQuery;
}
catch (SQLException ex) {
System.err.println("Echec de la requête " + query +
" sur la base de données " + URL + " : " + ex);
throw ex;
}
}
/**
* Fermeture de la connection
* @exception SQLException si la fermeture de la connection échoue
*/
public void closeConnection() throws SQLException {
try {
connection.close();
}
catch (SQLException ex){
System.err.println("Fermeture de la connection " +
"à la base de données " + URL + " impossible : " + ex);
throw ex;
}
}
} |
Partager