Rumah  >  Artikel  >  pangkalan data  >  Apakah cara untuk menyambungkan JDBC ke Mysql?

Apakah cara untuk menyambungkan JDBC ke Mysql?

王林
王林ke hadapan
2023-06-01 19:08:361750semak imbas

Perihalan persekitaran ujian

pangkalan data mysql: jdbc:mysql://localhost:3306/test

IDE: IDEA 2022

JDK: JDK8

mysql: mysql 5.7

JDBC: 5.1.37

Kaedah pertama

Gunakan kaedah pemacu pemuatan statik untuk menyambung mysql

Kaedah ini fleksibel Lemah prestasi dan pergantungan yang kuat

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();

Kaedah kedua

Menggunakan refleksi untuk memuatkan pemandu secara dinamik berdasarkan kaedah pertama, mengurangkan pergantungan dan meningkatkan fleksibiliti

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();
}

Cara ketiga

Gunakan DriverManager untuk pengurusan bersatu

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();
}

Cara keempat

Malah, Class.forName("com.mysql.jdbc.Driver") berada di bahagian bawah Instance Driver mempunyai telah dimuatkan secara automatik

Jadi Pemandu pemandu = (Pemandu) aClass.newInstance(); ayat ini boleh ditinggalkan

Kaedah ini juga paling banyak digunakan dalam pembangunan Sehala

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();
}

Cara kelima

Selepas mysql5.16, anda boleh memuatkan pemandu tanpa Class.forName(“com.mysql.jdbc.Driver”);
Sejak jdbc4 telah digunakan sejak jdk1.5, ia tidak lagi perlu memanggil class.forName() secara eksplisit untuk mendaftarkan pemandu, tetapi memanggil nama kelas secara automatik dalam teks META-INFservicesjava.sql.Driver di bawah pakej balang pemacu untuk mendaftar
cadangan Adalah lebih baik untuk menulis CLass forName("com.mysql.jdbc.Driver"), yang lebih jelas dan mempunyai keserasian yang lebih baik

Di sini, fail konfigurasi sifat juga digunakan untuk membaca maklumat dinamik secara dinamik, dan fleksibiliti diperoleh Penambahbaikan

Adalah disyorkan untuk menggunakan kaedah ini

Kandungan src/com/mysql/mysql.properties fail konfigurasi adalah seperti berikut

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

Sambungkan atur cara 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();
}

Atas ialah kandungan terperinci Apakah cara untuk menyambungkan JDBC ke Mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam