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

Java

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

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

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

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

Udemyの動画講座でわかりやすくサーブレットを勉強するicon

サンプルコード

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に接続してテーブルからデータを取得し、出力するシンプルなプログラムです。
以下順番に解説します。

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で行うのが
圧倒的におすすめです。
Udemyでは

  • 動画で好きな時間・隙間時間に学べる
  • 一流のエンジニアから教えてもらえる
  • 好きな技術を体系的に学べる
  • 実際に手を動かしながら学ぶことができる
  • セール時であれば1500円〜2000円ほどで購入できる(大半の技術書より安い)
  • 講座自体がアップデートされていくので情報が古くなりにくい

Udemyにはサーブレットを学べる講座iconもあります。
「これからサーブレットを学んでJavaでWebアプリケーションを作れるようになりたい!」という方はチェックしてみてください

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