【現役エンジニアが解説】JavaでMySQLに接続してデータを取得する

Java

今回の記事ではJavaでMySQLに接続してselect文によってデータを取得して表示する方法を解説していきます。

前提としてMySQL側でデータベースとテーブルが準備されていることとします。
準備ができていない方はこちらの記事を参考にしながら準備を進めてください。
使うデータベース名やテーブル名は以下の通りです。

  • データベース名:testdb
  • テーブル名:test_table
  • user: root
  • password: rootpass

なおtest_tableはintのidとvarcharのnameをカラムとして持つテーブルになります。
いくつかのデータが既に入っているものとします。

ご質問等あればこちらのTwitterアカウントまでお願いします。

「独学だと何から勉強したら良いかわからない」という方にはDig Skillがおすすめです!
Dig Skillでは月1000円でオリジナルのカリキュラムを使ってWebアプリの開発方法を学ぶことができます!30日間の無料体験もあるので、公式サイトをチェックしてみてください!

サンプルコード

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

public class Select {

	public static void main(String[] args) {
		
		String url = "jdbc:mysql://localhost:3306/testdb";
		String user = "root";
		String password = "rootpass";
		String sql = "select * from test_table;";

		try (Connection con = DriverManager.getConnection(url, user, password);
				Statement statement = con.createStatement();
				ResultSet resultset = statement.executeQuery(sql)) {
			System.out.println("id | name");
			while(resultset.next()) {
				int id = resultset.getInt("id");
				String name = resultset.getString("name");
				System.out.println(id + " | " + name);
			}
		}catch (SQLException e) {
			e.printStackTrace();
		}finally {
			System.out.println("プログラムを終了します。");
		}
	}
}

JavaからMySQLに接続してテーブルからデータを取得し、出力するシンプルなプログラムです。
以下順番に解説します。

データベースと接続

String url = "jdbc:mysql://localhost:3306/testdb";
String user = "root";
tring password = "rootpass";

try (Connection con = DriverManager.getConnection(url, user, password);

まずはデータベースと接続するための準備が記述してあります。
urlやuser、passwordといった変数を準備してそれをDribeManagerのgetConnectionメソッドに引数として渡します。
これによってconnectionオブジェクトを利用することができるようになります。

select文の実行

String sql = "select * from test_table;";

Statement statement = con.createStatement();
ResultSet resultset = statement.executeQuery(sql)

String型のsqlを用意してその中に実行したいSQL文の文字列を格納しています。
ConnectionオブジェクトのcreateStatementメソッドを使ってStatementオブジェクトを取得します。
さらにStatmentオブジェクトのexecuteQueryメソッドに先ほど準備したSQL文を引数として渡すことでSQL文が実行されます。
戻り値としてResultSetオブジェクトが返ってくるので変数を用意して受け取ります。

データの表示

while(resultset.next()) {
	int id = resultset.getInt("id");
	String name = resultset.getString("name");
	System.out.println(id + " | " + name);
}

続いてデータの表示です。
resultsetのnextメソッドを使うことで取得したデータを一行ずつ閲覧していくことが可能になります。get〇〇メソッドの引数に取得したいカラムを指定すると該当する値を返却してくれます。
今回のテーブルではintのidとvarcharのnameがあるのでそれぞれgetIntとgetStringにidやnameといった引数を渡すことで値を取得できます。
こうして取得した値をそれぞれ変数に入れて出力します。
次の行が存在する限りwhileループ内の処理が実行され、全ての行が出力し終わるとループを抜けます。

動作確認

上記プログラムを実行すると以下のようになるはずです。

id | name
1 | Taro
2 | jiro
3 | saburo
プログラムを終了します。

次回はユーザなどから条件を指定してもらいwhere句を使って特定のデータのみを取得する方法を解説したいと思います。

「独学だと何から勉強したら良いかわからない」という方にはDig Skillがおすすめです!
Dig Skillでは月1000円でオリジナルのカリキュラムを使ってWebアプリの開発方法を学ぶことができます!30日間の無料体験もあるので、公式サイトをチェックしてみてください!

コメント

タイトルとURLをコピーしました