【Java】MySQLに接続してselect文でデータを取得する

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

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

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

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

サンプルコード

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) {
		// TODO 自動生成されたメソッド・スタブ
		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句を使って特定のデータのみを取得する方法を解説したいと思います。

おすすめの参考書

 

私はプログラミング学習はUdemyで行うのが以下のような理由で圧倒的におすすめです。

  • 動画で好きなときに学べる
  • 一流のエンジニアから教えてもらえる
  • 好きな技術を体系的に学べる
  • 実際に手を動かしながら学ぶことができる
  • セール時であれば1500円〜2000円ほどで購入できる(大半の技術書より安い)
  • 講座自体がアップデートされていくので情報が古くなりにくい
  • UdemyにはJava x MySQLでWebアプリの作り方が学べる講座 もあるので興味がある方は一度チェックしてみてください!

    コメント

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