Java : Etablissement de la connexion
Java : Etablissement de la connexion
- La troisième étape doit nous permettre de rentrer en contact, pour la première fois, avec notre base de données. C’est la connexion à proprement parler.
- url : identification de la base considérée sur le SGBD ==>Format de l’URL est dépendant du SGGB utilisé
- user : nom de l’utilisateur qui se connecte à la base
- password : mot de passe de l’utilisateur
- Une fois la connexion établie, vous pouvez obtenir un certain nombre d’informations en utilisant la
classe DatabaseMetaData
. Une instance de cette classe vous est retournée par la méthode
Connexion.getDatabaseMetaData()
. - Utiliser un pilote JDBC Oracle pour se connecter à une base de données Oracle non sécurisée située à 127.0.0.1:1521 avec un sid appelée : mabase.
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
« ;
Connexion au SGBD
Classe java.sql.DriverManager
Gestion du contrôle et de la connexion au SGBD
static Connection getConnection(String url, String user, String password)
Exemple(Oracle)
public class orcl {
Connection con = null;
public void connexionBD()
{
try { Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println ("driver etablie");
}
catch (ClassNotFoundException e)
{
System.out.println ("driver non trouvé");
}
String URL = "jdbc:oracle:thin:@//127.0.0.1:1521/xe " ;
String USER = "system";
String PASSWD = "system";
try {
con=DriverManager.getConnection(URL,USER, PASSWD);
System.out.println ("connexion base orcl etablie");}
catch (SQLException e) {
System.out.println ("pas de connexion");
}
}
}
Exemple(MySql)
public class mysql {
Connection con = null;
public void connexionBD()
{
try { Class.forName("com.mysql.jdbc.Driver");
System.out.println ("driver etablie");
}
catch (ClassNotFoundException e)
{
System.out.println ("driver non trouvé");
}
String URL = "jdbc:mysql://localhost:3306/nom_base_donnee" ;
String USER = "root";
String PASSWD = "root";
try {
con=DriverManager.getConnection(url,user,password);;
System.out.println ("connexion base MySql etablie");}
catch (SQLException e) {
System.out.println ("pas de connexion");
}
}
}
Exemple(Access)
public class access {
Connection con = null;
public void connexionBD()
{
try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println ("driver etablie");
}
catch (ClassNotFoundException e)
{
System.out.println ("driver non trouvé");
}
String Database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;" ;
String USER = "";
String PASSWD = "";
try {
con=DriverManager.getConnection(database,user,password);;
System.out.println ("connexion base Access etablie");}
catch (SQLException e) {
System.out.println ("pas de connexion");
}
}
}
Exercice (Oracle)
-
Utiliser un pilote JDBC Oracle pour se connecter à une base de données Oracle non sécurisée située à 127.0.0.1:1521 avec un sid appelée : mabase.
Correction (Oracle)
Connection connection = null;
try {
// Chargez le pilote JDBC
String driverName = "oracle.jdbc.driver.OracleDriver";
Class.forName(driverName);
/ / Créer une connexion à la base de données
String serverName = "127.0.0.1";
String portNumber = "1521";
String sid = "mabase";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
String username = "system";
String password = "system";
connection = DriverManager.getConnection(url, username, password);}
catch (ClassNotFoundException e) {
/ / Impossible de trouver le pilote de base de données}
catch (SQLException e) {
/ / Impossible de se connecter à la base de données
}
Exercice (MySql)
-
Utiliser un pilote JDBC pour se connecter à une base de données MySql située à localhost appelée : base_test.
Correction (MySql)
// Importer les classes
import java.sql.* ;
import java.io.* ;
import com.mysql.jdbc.driver.* ;
public class TestDB {
public static void main (String[] args) {
try {
try {
// chargement de la classe par son nom
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(connection.class.getName()).log(Level.SEVERE, null, ex);}
// Protocole de connexion
String protocole = "jdbc:mysql:" ;
// Adresse IP de l’hôte de la base et port
String ip = "localhost" ; // dépend du contexte
String port = "3306" ; // port MySQL par défaut
// Nom de la base
String nomBase = "test_db" ; // dépend du contexte
// Chaîne de connexion
String conString = protocole + "//" + ip + ":" + port + "/" + nomBase;
// Identifiants de connexion et mot de passe
String nomConnexion = "user" ; // dépend du contexte
String motDePasse = "passwd" ; // dépend du contexte
// Connexion
Connection con = DriverManager.getConnection( conString, nomConnexion, motDePasse);
// Envoi d’un requête générique
String sql = "select * from Marins" ;
Statement smt = con.createStatement() ;
ResultSet rs = smt.executeQuery(sql) ;
while (rs.next())
{
System.out.println(rs.getString("nom")) ;
}
} catch (Exception e) {
// gestion des exceptions
}
}
}