JavaでMySQLを操作する方法について解説していきます。
今回はWindows環境にXAMPPをインストールしてMySQLを使用します。
#事前準備
・JDKのインストール
・Eclipseのインストール
・XAMPPのインストール
・JDBCドライバの準備
#Eclipseの準備
###1.Javaプロジェクトを作成
左上の**「ファイル(F)」>「新規(N)」>「Javaプロジェクト」** で今回使う新規プロジェクトを作成します。
プロジェクト名はわかりやすく**「MysqlTest」とでもしておきましょう。「完了(F)」**をクリックして作成します。
###2.プロジェクトにJDBCドライバを組み込む
プロジェクトが作成できたらプロジェクト上で右クリックをし、 「ビルド・パス(B)」>「外部アーカイブの追加(V)…」を選択してJDBCドライバ(mysql-connector-java-8.0.19.jar)を開きます。
プロジェクト直下の「参照ライブラリ」にmysql-connector-java-8.0.19.jarが追加してあれば大丈夫です。
#MySQLの準備
XAMPPを起動し、MySQLを**「Start」させます。
Startできたら右にある「Shell」**をクリックして起動させます。
起動出来たら以下のコマンドを入力し、rootユーザーでMySQLに接続します。パスワード等の設定はこちらの記事を参考にしてください。
mysql -u root -p
接続ができたら、以下のコマンドでデータベースを作成します。今回は**「test_db」**という名前のデータベースを作成します。
CREATE DATABASE test_db;
無事に作成できたら、以下のコマンドで今作ったデータベースに接続します。
USE test_db;
次にテーブルを作成し、データを格納していきます。今回は**「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', 'ぶどう');
きちんとデータが格納されたかどうか以下のコマンドで確認してみましょう。
SELECT * FROM test;
#JavaからMySQLに接続
さて、以上で準備は整いました。ここからはJavaプログラムを作成して、先ほど作成したデータベースにアクセスし、テーブルのデータを表示させてみましょう。
まず、最初に作った**「MysqlTest」プロジェクトの中にある「src」を右クリックし、「新規(W)」>「パッケージ」で「java_mysql」**というパッケージを作成します。
次に、今作ったパッケージを右クリックし、**「新規(W)」> 「ファイル」で「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アプリケーション」**から実行します。