[Java] 25 リストとfor文

前回の続きです。

競走馬名に対して登録が複数ある場合に競走馬IDをリスト化するコードを書きました。

Listを使うために一々ライブラリをimportするのには少し驚きました。

for文の書き方はPythonよりこちらの方が好みかも。

package mysql_test3;

import java.util.ArrayList;
import java.util.List;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class AppTest {
    public static void main(String args[]) {
        String url = "jdbc:mysql://localhost:3306";
        String user = "ユーザ名";
        String password = "パスワード";

        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);

        System.out.println("競走馬名を入力してください");

        String name = null;
        try {
            name = br.readLine();}

        catch (IOException e) {
            e.printStackTrace();}

        System.out.println("競走馬名は「" + name + "」です");

        List<String> ID_list = new ArrayList<String>();
        for (int i = 1986; i < 2019; i++){
            try (Connection conn = DriverManager.getConnection(url, user, password)){
                String sql = String.format("SELECT horseID FROM \
                horse_list.horse%d WHERE 検索馬名 = '%S'",i,name);
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();

                String ID = null;
                while (rs.next()) {
                    ID = rs.getString("horseID");
                    System.out.println(ID);
                    ID_list.add(ID);
                    System.out.println(ID_list);}}

            catch (Exception e) {
                    e.printStackTrace();}}}}
--------------------------------------------------

出力
--------------------------------------------------
競走馬名を入力してください
ヒシマサル
競走馬名は「ヒシマサル」です
198908574
[198908574]
201405934
[198908574, 201405934]