17
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Eclipseを使ってJavaからMySQLへ接続する

Last updated at Posted at 2020-05-24

JavaでMySQLを操作する方法について解説していきます。
今回はWindows環境にXAMPPをインストールしてMySQLを使用します。

#事前準備
・JDKのインストール
・Eclipseのインストール
・XAMPPのインストール
・JDBCドライバの準備

#Eclipseの準備
###1.Javaプロジェクトを作成
左上の**「ファイル(F)」>「新規(N)」>「Javaプロジェクト」** で今回使う新規プロジェクトを作成します。
image.png
プロジェクト名はわかりやすく**「MysqlTest」とでもしておきましょう。「完了(F)」**をクリックして作成します。

image.png

###2.プロジェクトにJDBCドライバを組み込む
プロジェクトが作成できたらプロジェクト上で右クリックをし、 「ビルド・パス(B)」>「外部アーカイブの追加(V)…」を選択してJDBCドライバ(mysql-connector-java-8.0.19.jar)を開きます。
image.png
image.png
プロジェクト直下の「参照ライブラリ」にmysql-connector-java-8.0.19.jar
が追加してあれば大丈夫です。

#MySQLの準備
XAMPPを起動し、MySQLを**「Start」させます。
image.png
Startできたら右にある
「Shell」**をクリックして起動させます。
起動出来たら以下のコマンドを入力し、rootユーザーでMySQLに接続します。パスワード等の設定はこちらの記事を参考にしてください。

mysql -u root -p

接続ができたら、以下のコマンドでデータベースを作成します。今回は**「test_db」**という名前のデータベースを作成します。

CREATE DATABASE test_db;

無事に作成できたら、以下のコマンドで今作ったデータベースに接続します。

USE test_db;

ここまでの流れは以下の画像のとおりです。
image.png

次にテーブルを作成し、データを格納していきます。今回は**「test」というテーブルを作成します。以下のコマンドを入力してください。※コンマを忘れないように!もし、入力ミスをした場合は「\c」**で中断して新しく入力し直してください。

CREATE TABLE test(
    id VARCHAR(3),
    name VARCHAR(10)
);

テーブルが作成できたらデータを格納していきます。今回はデータを3行格納してみましょう。

INSERT INTO test VALUES('001', 'みかん');
INSERT INTO test VALUES('002', 'りんご');
INSERT INTO test VALUES('003', 'ぶどう');

ここまでの流れは以下の画像のようになります。
image.png

きちんとデータが格納されたかどうか以下のコマンドで確認してみましょう。

SELECT * FROM test;

image.png
これでMySQLの準備は完了です。

#JavaからMySQLに接続

さて、以上で準備は整いました。ここからはJavaプログラムを作成して、先ほど作成したデータベースにアクセスし、テーブルのデータを表示させてみましょう。

まず、最初に作った**「MysqlTest」プロジェクトの中にある「src」を右クリックし、「新規(W)」>「パッケージ」で「java_mysql」**というパッケージを作成します。
image.png

次に、今作ったパッケージを右クリックし、**「新規(W)」> 「ファイル」「Test.java」**というファイルを作成します。

image.png
ここまで出来たら**「Test.java」**の中身を書いていきます。 コードの意味はコメントで書いておきました。

Test.java
package java_mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Test {

	public static void main(String[] args) {
    
    // 変数の準備
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;

    // SQL文の作成
		String sql = "SELECT * FROM test";

		try {
			// JDBCドライバのロード
			Class.forName("com.mysql.cj.jdbc.Driver");
			// データベース接続
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_db?serverTimezone=JST", "root", "root");
			// SQL実行準備
			stmt = con.prepareStatement(sql);
			// 実行結果取得
			rs = stmt.executeQuery();

      // データがなくなるまで(rs.next()がfalseになるまで)繰り返す
			while (rs.next()) {
				String id = rs.getString("id");
				String name = rs.getString("name");

				System.out.println(id + ":" + name);
			}
		} catch (ClassNotFoundException e) {
			System.out.println("JDBCドライバのロードでエラーが発生しました");
		} catch (SQLException e) {
			System.out.println("データベースへのアクセスでエラーが発生しました。");
		} finally {
			try {
				if (con != null) {
					con.close();
				}
			} catch (SQLException e) {
				System.out.println("データベースへのアクセスでエラーが発生しました。");
			}
		}
	}

}

コードが書き終わったら保存をし、**「Test.java」を右クリックして「実行(R)」>「Javaアプリケーション」**から実行します。

image.png
コンソールで以下のように表示されていれば成功です。

image.png

17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?