𝖄𝕺🌎𝕿𝕽𝕺¥

𝖄𝕺🌎𝕿𝕽𝕺¥

𝕴 𝖉𝖔 𝖒𝖆𝖌𝖎𝖈
github

0から始めて、IDEAを使用してJavaでMySQLデータベースへの接続とJDBCの相互作用の例を実装します。

目標#

SQL 環境、Java ライブラリの設定、簡単な例を含めて、Java とデータベースのインタラクションを実現する。

環境の設定#

ホストの設定:IntelliJ IDEA、SDK18、Windows11

ダウンロード:
Connector/J
システムの選択 Platform Independent
connectorJ

MySQL Community 8.0
mysql-installer-community をダウンロードしてください。mysql-installer-web-community ではありません。
MySQLCommunity

MySQLCommunity をダウンロードしたら、インストールしてください。サーバーのみをインストールし、情報を覚えておいてください。データベースのアカウントを設定します(この例では <username>、<password > です。画像はインストールが成功した後であり、インストールプロセスとは異なります)。

mysqlInstaller

IDEA の設定#

MySQL - 新しいデータソースの作成と接続の実現#

プロジェクトを作成した後、メニューバーの表示 - ツールウィンドウ - データベース、新しいデータソースの作成 - MySQL ドライバのダウンロード、クラス名を記録してください(例:com.mysql.cj.jdbc.Driver)。
mysqldriver

データソース、認証情報には MySQL のインストール時のデータベースアカウントを入力してください。URL アドレスを記録してください。
localhost
下部のテスト接続を確認して、成功したら次に進んでください。

Connector/J をプロジェクトライブラリにインポート#

ファイル - プロジェクト構造 - ライブラリ、ダウンロードした Connector/J の解凍された jar ファイルを追加し、OK をクリックしてください。
projectStructure

インタラクションの実現#

データベース#

コンソールに移動し、MySQL コマンドを入力してください。MySQL チュートリアル:MySQL データベースの学習ガイド(初心者から上級者まで)を参照してください。

sqlkongzhitai

以下のコードを入力してください:

CREATE DATABASE test; #データベースの作成
USE test; #操作するデータベースの選択
CREATE TABLE IF NOT EXISTS students (   #studentsテーブルの作成
    id INT NOT NULL PRIMARY KEY ,
    name TEXT NOT NULL ,
    age INT NOT NULL );
INSERT INTO students VALUES (1,'name1',18); #データの挿入
INSERT INTO students VALUES (2,'name2',12);
INSERT INTO students VALUES (3,'name3',22);

実行後、作成が完了するのを確認してください。

Java クラス#

新しい Java クラスを作成し、以下のコードを入力してください。

import java.sql.*;

public class Test {

    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";//ドライバークラス名
    static final String DB_URL = "jdbc:mysql://localhost:3306";//データベースのURLアドレス

    static final String USERNAME = "username";//データベースのユーザー名
    static final String PASSWORD = "password";//データベースのパスワード

    public static void main(String[] args){

        Connection conn = null;
        Statement stat = null;

        try {
            Class.forName(JDBC_DRIVER);
            System.out.println("Connecting...");
            conn = DriverManager.getConnection(DB_URL,USERNAME,PASSWORD);
            stat = conn.createStatement();

            String sql = "SELECT * FROM test.students";//ここにMySQLのクエリを入力します
            ResultSet rs = stat.executeQuery(sql);

            while(rs.next()){//ループ
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("id = " + id);
                System.out.println("name = " + name);
                System.out.println("age = " + age);
            }

            rs.close();//解放
            stat.close();
            conn.close();

        } catch (Exception e){
            e.printStackTrace();
        } finally {
            try {
                if (stat!=null) stat.close();
            } catch (SQLException ignored) {
            } try {
                if (conn!=null) conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
            System.out.println("Success!");
        }
    }
}

出力結果

Connecting...
id = 1
name = name1
age = 18
id = 2
name = name2
age = 12
id = 3
name = name3
age = 22
Success!
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。