メイビン

最も重要な詳細は、MySQL サーバー自体の JDBC ドライバー ライブラリです。お使いのコンピュータには表示されないため、そこに追加する必要があります。

Maven を使用している場合は、適切なライブラリを指定して Maven を支援する必要があります。

MySQL JDBC ドライバー:

   	<dependency>
        	<groupId>mysql</groupId>
        	<artifactId>mysql-connector-java</artifactId>
        	<version>8.0.29</version>
    	</dependency>

このコードをpom.xmlに追加するだけです。

さらに人気のあるドライバーもいくつか紹介します。

PostgeSQL用の JDBC ドライバー:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.4.0</version>
</dependency>

Oracle用の JDBC ドライバー:

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>21.5.0.0</version>
</dependency>

H2用の JDBC ドライバー:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.214</version>
</dependency>

最初のデータベースクエリ

必要なライブラリがすべて含まれているので、最初のデータベース アクセス プログラムを実行します。すべてのコードをmain()メソッドに記述します。

ステージ 1main()メソッドの前にインポートをいくつか追加します。これにより、作業がはるかに簡単になります。

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;

ステージ 2。まずデータベース接続を作成する必要があります。これを行うには、main()メソッドで次のコードを記述します。

Connection connection  = DriverManager.getConnection(
           "jdbc:mysql://localhost:3306/test",
           "login", "password");

1 行で実行することもできます。どちらか都合の良い方を選択してください。ログインとパスワードは、もちろん、ローカルの MySQL サーバーの実際のものに置き換える必要があります。

ステージ3。データベースへのクエリを作成します。ユーザーテーブルからすべてのユーザーを取得しましょう。次に、次のコード行を追加する必要があります。

Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");

それは2行です。最初にオブジェクトを作成します声明2 番目では、それを使用してデータベースにクエリを実行します。executeQuery()メソッドはデータベース クエリを実行し、次のタイプのオブジェクトを返します。結果セット

ステージ4。オブジェクトに含まれるデータを表示する結果セット

結果セット- それはセットではなく、単にそう呼ばれているだけです。クエリの実行結果が保存されます。このオブジェクトはイテレータに似ています。このオブジェクトを使用すると、結果の現在の行を設定または変更し、この現在の行からデータを取得できます。次のコードを例に追加します。

while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
}

next()メソッドは、現在の結果行を次の結果行に変更します。そのような行がある場合は true を返し、それ以上の行がない場合は false を返します。

次に、オブジェクトの現在の行から結果セットその列からデータを取得できます。

  • getRow() - オブジェクト内の現在の行の番号を返します。結果セット
  • getInt(N) - 現在の行の N 番目の列のデータを int として返します。
  • getString(N) - 現在の行の N 番目の列のデータを文字列として返します。

完全なプログラムリスト

エラーを最小限に抑えるために、プログラムの完全なリストを次に示します。

package org.example;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcApplicatin {
    public static void main(String[] args) throws  Exception{
 	   Connection connection  = DriverManager.getConnection(
          	"jdbc:mysql://localhost:3306/test",
          	"root", "secret");

        Statement statement = connection.createStatement();
    	ResultSet results = statement.executeQuery("SELECT * FROM user");

    	while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
    	}
    	connection.close();
    }
}

そして、プログラムを実行した後の画面出力は次のとおりです。

「C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe...
十一 イワノフ・イワン
2.2 ペトロフ・ニコライ
3.3 シドロフ・ヴィタリー
プロセスは終了コード 0 で終了しました