Connexion Java MySQL

Dans ce chapitre, nous allons présenter comment Java utilise JDBC pour se connecter à une base de données MySQL.

Java nécessite un package de pilote pour se connecter à MySQL. L'adresse de téléchargement de la dernière version est :http://dev.mysql.com/downloads/connector/j/Après décompression, vous obtenez le fichier de bibliothèque jar, puis importez-le dans votre projet correspondant.

Vous pouvez télécharger le package jar fourni par ce site :mysql-connector-java-5.1.39-bin.jar

Cet exemple utilise Eclipse pour importer le package jar :

La connexion à la base de données pour MySQL 8.0 et versions ultérieures est différente :

  • 1. Version du package de pilote pour MySQL 8.0 et versions ultérieuresmysql-connector-java-8.0.16.jar。

  • 2, com.mysql.jdbc.Driverchangé encom.mysql.cj.jdbc.Driver。

  • MySQL 8.0 et versions ultérieures ne nécessite pas l'établissement d'une connexion SSL ; vous devez la désactiver explicitement.

  • allowPublicKeyRetrieval=true permet au client de récupérer la clé publique du serveur.

  • Enfin, vous devez également définir CST.

La façon de charger le pilote et de se connecter à la base de données est la suivante :

Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC","root","password");

Créer des données de test

Ensuite, nous allons créer la base de données EXAMPLE dans MySQL, et créer une table de données websites. La structure de la table est la suivante :

CREATE TABLE `websites` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL DEFAULT '' COMMENT 'Nom du site', `url` varchar(255) NOT NULL DEFAULT '', `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Classement Alexa', `country` char(10) NOT NULL DEFAULT '' COMMENT 'Pays', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

Insérer des données :

INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', 'Taobao', 'https://www.taobao.com/', '13', 'CN'), ('3', 'Example', 'http://www.example.com', '5892', ''), ('4', 'Weibo', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');

Le tableau de données s'affiche comme suit :


Connexion à la base de données

Cet exemple utilise JDBC pour se connecter à une base de données MySQL. Notez que certaines données telles que le nom d'utilisateur et le mot de passe doivent être adaptées à votre environnement de développement :

Fichier MySQLDemo.java :

package com.example.test; import java.sql.*; public class MySQLDemo { //Versions de MySQL inférieures à 8.0 - nom du pilote JDBC et URL de la base de données static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/EXAMPLE"; //MySQL 8.0 et versions ultérieures - nom du pilote JDBC et URL de la base de données //static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; //static final String DB_URL = "jdbc:mysql://localhost:3306/EXAMPLE?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"; //Le nom d'utilisateur et le mot de passe de la base de données doivent être définis selon vos propres paramètres static final String USER = "root"; static final String PASS = "123456"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ //Enregistrer le pilote JDBC Class.forName(JDBC_DRIVER); //Ouvrir la connexion System.out.println("Connexion à la base de données..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //Exécuter la requête System.out.println("Instancier l'objet Statement..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, name, url FROM websites"; ResultSet rs = stmt.executeQuery(sql); //Développer l'ensemble de résultats de la base de données while(rs.next()){ //Récupérer par champ int id = rs.getInt("id"); String name = rs.getString("name"); String url = rs.getString("url"); //Afficher les données System.out.print("ID: " + id); System.out.print(", nom du site:" + name); System.out.print(", URL du site:" + url); System.out.print("\n"); } //Fermer une fois terminé rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ //Gérer les erreurs JDBC se.printStackTrace(); }catch(Exception e){ //Gérer les erreurs Class.forName e.printStackTrace(); }finally{ //Fermer les ressources try{ if(stmt!=null) stmt.close(); }catch(SQLException se2⟧Ne rien faire){ }//Do nothing try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } System.out.println("Goodbye!"); } }

La sortie de l'exemple ci-dessus est la suivante :

Autres extensions