前回の続きです。
競走馬名に対して登録が複数ある場合に競走馬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]