JDBC (Java Data Base Connectivity) est l'interface JAVA d'accès aux bases de données SQL. Les opérations de bases y sont définies: sélectionner la base de données, exécuter une requête et parcourir le resultset.
Pour communiquer avec les bases de données MySQL, le driver est à importer soi-même, n'étant pas installé par défaut dans JAVA.
Après avoir extrait la librairie jar, que ce soit sous NetBeans ou que ce soit sous Eclipse, il suffit d'ajouter le driver à la librairie du projet.
.
établit une connexion avec le serveur de base de donnée.
est déclenchée.
.
l'emplacement de l'erreur dans la requête.
Pour simplifier la communication avec le serveur ou pour utiliser l'héritage ensuite, voici un exemple simple de client MySQL.
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* MySQL client
* @author Fobec 2010
*/
public class MySQLCli {
private String dbURL = "";
private String user = "";
private String password = "";
private java.sql.Connection dbConnect = null;
private java.sql.Statement dbStatement = null;
/**
* Constructeur
* @param url
* @param user
* @param password
*/
public MySQLCli(String url, String user, String password) {
this.dbURL = url;
this.user = user;
this.password = password;
}
/**
* Connecter à la base de donnée
* @return false en cas d'échec
*/
public Boolean connect() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
this.dbConnect = DriverManager.getConnection("jdbc:mysql:" + this.dbURL, this.user, this.password);
this.dbStatement = this.dbConnect.createStatement();
return true;
} catch (SQLException ex) {
Logger.getLogger(MySQLCli.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(MySQLCli.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(MySQLCli.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(MySQLCli.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
/**
* Executer une requete SQL
* @param sql
* @return resultat de la requete
*/
public ResultSet exec(String sql) {
try {
ResultSet rs = this.dbStatement.executeQuery(sql);
return rs;
} catch (SQLException ex) {
Logger.getLogger(MySQLCli.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
/**
* Fermer la connexion au serveur de DB
*/
public void close() {
try {
this.dbStatement.close();
this.dbConnect.close();
this.dbConnect.close();
} catch (SQLException ex) {
Logger.getLogger(MySQLCli.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* Exemple d'utilisation de la class
* @param args
*/
public static void main(String[] args) {
MySQLCli mysqlCli = new MySQLCli("//localhost", "", "");
if (mysqlCli.connect()) {
try {
ResultSet rs = mysqlCli.exec("SELECT * FROM table");
if (rs != null) {
while (rs.next()) {
System.out.println("Valeur: " + rs.getString(1));
}
}
} catch (SQLException ex) {
Logger.getLogger(MySQLCli.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
System.out.println("Mysql connection failed !!!");
}
mysqlCli.close();
}
}