Maison  >  Article  >  base de données  >  Quels sont les moyens de connecter JDBC à Mysql ?

Quels sont les moyens de connecter JDBC à Mysql ?

王林
王林avant
2023-06-01 19:08:361745parcourir

Description de l'environnement de test

Base de données mysql : jdbc:mysql://localhost:3306/test

IDE : IDEA 2022

JDK : JDK8

mysql : mysql 5.7

JDBC : 5.1.37

Première méthode de type

Utilisez la méthode du pilote de chargement statique pour vous connecter à MySQL

Cette méthode a une faible flexibilité et une forte dépendance

public void connection01() throws SQLException {
    // 注册驱动
    Driver driver = new Driver();
    // 创建Properties对象,用于保存mysql账号和密码键值对
    Properties properties = new Properties();
    properties.setProperty("user", "root");
    properties.setProperty("password", "123456");
    String url = "jdbc:mysql://localhost:3306/test";
    // 得到mysql的连接
    Connection connection = driver.connect(url, properties);
    // 得到可以与mysql语句进行交互的对象
    Statement statement = connection.createStatement();
    // 关闭与 mysql语句进行交互的对象
    statement.close();
    // 关闭与mysql的连接
    connection.close();

La deuxième méthode

Utilise la réflexion pour charger dynamiquement le pilote basé sur la première méthode, ce qui réduit les dépendances et est plus flexible. amélioration

public void connection02() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
    // 使用反射动态加载mysql驱动件程序
    Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
    Driver driver = (Driver) aClass.newInstance();
    // 创建Properties对象,用于保存mysql账号和密码键值对
    Properties properties = new Properties();
    properties.setProperty("user", "root");
    properties.setProperty("password", "123456");
    String url = "jdbc:mysql://localhost:3306/test";
    // 得到mysql的连接
    Connection connection = driver.connect(url, properties);
    // 得到可以与mysql语句进行交互的对象
    Statement statement = connection.createStatement();
    // 关闭与 mysql语句进行交互的对象
    statement.close();
    // 关闭与 mysql语句进行交互的对象
    connection.close();
}

La troisième voie

Utiliser DriverManager pour une gestion unifiée

public void connection03() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
	// 使用反射动态加载mysql驱动件程序
    Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
    Driver driver = (Driver) aClass.newInstance();
    String user = "root";
    String password = "123456";
    String url = "jdbc:mysql://localhost:3306/test";
    // 使用DriverManager加载Driver
    DriverManager.registerDriver(driver);
    // 得到mysql的连接
    Connection connection = DriverManager.getConnection(url, user, password);
    // 得到可以与mysql语句进行交互的对象
    Statement statement = connection.createStatement();
    // 关闭与 mysql语句进行交互的对象
    statement.close();
    // 关闭与 mysql语句进行交互的对象
    connection.close();
}

La quatrième voie

En fait, Class.forName ("com.mysql.jdbc.Driver") a automatiquement chargé l'instance du pilote au niveau de la couche inférieure

Donc Driver driver = (Driver) aClass.newInstance(); cette phrase peut être omise

Cette méthode est également la méthode la plus utilisée en développement

public void connection04() throws ClassNotFoundException, SQLException {
    // 使用反射动态加载mysql驱动件程序
    Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
    String user = "root";
    String password = "123456";
    String url = "jdbc:mysql://localhost:3306/test";
    // 得到mysql的连接
    Connection connection = DriverManager.getConnection(url, user, password);
    // 得到可以与mysql语句进行交互的对象
    Statement statement = connection.createStatement();
    // 关闭与 mysql语句进行交互的对象
    statement.close();
    // 关闭与 mysql语句进行交互的对象
    connection.close();
}

La cinquième méthode

Elle peut être omise après la classe mysql5.16 .forName("com.mysql.jdbc.Driver"); pour charger le pilote
Depuis jdk1.5 et versions ultérieures, jdbc4 est utilisé. Il n'est plus nécessaire d'appeler explicitement class.forName() pour enregistrer le pilote mais pour. appelle automatiquement le META sous le package jar du pilote. -Enregistrez le nom de la classe dans le texte de INFservicesjava.sql.Driver
Il est recommandé d'écrire CLASS forName("com.mysql.jdbc.Driver"), ce qui est plus clair. et a une meilleure compatibilité

Le fichier de configuration des propriétés est également utilisé ici Réaliser une lecture dynamique des informations dynamiques et améliorer la flexibilité

Il est recommandé d'utiliser cette méthode

src/com/mysql/mysql.properties le contenu du fichier de configuration est comme suit

url=jdbc:mysql://localhost:3306/test
user=root
password=123456

Connectez le programme mysql

public void connection05() throws SQLException, ClassNotFoundException, IOException {
    // 使用Properties读取配置文件下的内容
    Properties properties = new Properties();
    properties.load(new FileInputStream("src/com/mysql/mysql.properties"));
    String url = properties.getProperty("url");
    String user = properties.getProperty("user");
    String password = properties.getProperty("password");
    // 得到mysql的连接
    Connection connection = DriverManager.getConnection(url, user, password);
    // 得到可以与mysql语句进行交互的对象
    Statement statement = connection.createStatement();
    // 关闭与 mysql语句进行交互的对象
    statement.close();
    // 关闭与 mysql语句进行交互的对象
    connection.close();
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer