JDBC を MySQL に接続するにはどのような方法がありますか?

王林
リリース: 2023-06-01 19:08:36
転載
1767 人が閲覧しました

テスト環境の説明

mysqlデータベース: jdbc:mysql://localhost:3306/test

IDE: IDEA 2022

JDK: JDK8

mysql:mysql 5.7

JDBC:5.1.37

最初の方法

静的読み込みドライバー メソッドを使用して mysql に接続します

この方法は柔軟ですパフォーマンスと強い依存性

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();
ログイン後にコピー

2番目の方法

リフレクションを使用して最初の方法に基づいてドライバーを動的にロードし、依存性を減らし、柔軟性を向上させます

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();
}
ログイン後にコピー

3番目の方法

統合管理に DriverManager を使用する

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();
}
ログイン後にコピー

4 番目の方法

実際には、Class.forName("com.mysql.jdbc.Driver") が一番下にあります。 Driver インスタンスには次のものがあります。自動的にロードされます

So Driver driver = (Driver) aClass.newInstance(); この文は省略可能です

このメソッドも開発で最もよく使用されます One way

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();
}
ログイン後にコピー

5 番目の方法

mysql5.16 以降、Class.forName(“com.mysql.jdbc.Driver”) を使用してドライバーをロードすることはできなくなりました。
jdbc4 ではjdk1.5 以降使用されているため、ドライバーを登録するために class.forName() を明示的に呼び出す必要はなくなりましたが、ドライバー jar の下にある META-INF\services\java.sql.Driver テキスト内のクラス名を自動的に呼び出す必要があります。登録するパッケージ
CLass.forName("com.mysql.jdbc.Driver") を記述することをお勧めします。これは、より明確で互換性が高くなります。

プロパティ設定ファイル動的情報を動的に読み取るためにここでも使用されます。柔軟性が向上します。

この方法を使用することをお勧めします

src/com/mysql/mysql.properties 設定ファイルの内容は次のとおりです

url=jdbc:mysql://localhost:3306/test
user=root
password=123456
ログイン後にコピー

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();
}
ログイン後にコピー

以上がJDBC を MySQL に接続するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート