Java

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

※アフィリエイト広告を利用しています。

ウハブログ

こんにちは、大学時代にプログラミングを始め、現在はエンジニアをしているuhablog(ウハブログ)です。

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

前提としてMySQL側でデータベースとテーブルが準備されていることとします。

使うデータベース名やテーブル名は以下の通りです。

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

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

挫折せずにプログラミングを学ぶために必要なこと

僕はプログラミングで挫折した経験があります。

それは周りに聞ける人がいなく、一人でエラーと戦っていたからです。

Freeksは月額10,780円という破格の値段で、現役エンジニアに質問する環境を手に入れることができるプログラミングスクールです。

次のような悩みを少しでも抱えていたら、まずは無料カウンセリングを受けてみてください。

  • エラーを一人で解消できない
  • このまま勉強を続けて本当に就職できるかわからない
  • プログラミングスクールは高額すぎて通えない
  • 申込みは1分でできます。学習する環境にお金を使うというのは良い自己投資になります。
    >>Freeksの無料カウンセリングはこちら

    サンプルコード

    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句を使って特定のデータのみを取得する方法を解説したいと思います。

    挫折せずにプログラミングを学ぶためには?

    僕はプログラミングで挫折した経験があります。

    エラーの連続やエラーが解消しても思った通りに動かないといったことが原因で、プログラミングが嫌いでした。

    「プログラミングって全然意味わからないし、全然楽しくない」そう思っていました。

    原因は当時周りに聞ける人が誰もいなかったからです。

    プログラミング学習をしていく上で周りに聞ける環境というのはとても大切です。

    周りに聞ける人なんていない

    そんな人におすすめなのが月額10,780円で現役エンジニアに質問できる、プログラミングスクールのFreeksです。

    多くのプログラミングスクールが数十万円払って通うところを月額10,780円から通うことができるのはコスパが良いです。

    しかもサブスク制で、自分のペースで学ぶことができ嫌になったらすぐにやめることができます。

    「周りに誰も聞ける人がいなくて、エラーが解決できない」「プログラミング全然楽しくない」という方は、無料カウンセリングを受けてみて下さい。

    \\サブスク型スクールで挫折せずにエンジニアになろう//

    Freeks公式サイトはこちら

    まずは無料カウンセリングから

    【関連記事】Freeks評判、口コミ

    まずは無料体験から

    -Java