У меня есть этот метод в моем классе базы данных, и я хочу получить часть данных из столбца, который является «dateOfBirth» в таблице MySQL, но я не знаю, почему list.size () равен «0» но когда я использую System.out.println () в моем коде, он покажет только первую строку таблицы sql, хотя у меня есть две строки !!!
мой метод:
public static int getBirthPercent(String i) throws SQLException {
Statement stmt = conn.createStatement();
List<String> list = null;
if (i.equals("O")) {
ResultSet rst = stmt.executeQuery("SELECT dateOfBirth from birthtable");
while (rst.next()) {
String s1 = rst.getString(1);
if (rst.wasNull()) {
s1 = null;
}
String s2 = s1.substring(s1.length() - 4);
int s3 = Integer.parseInt(s2);
if (list == null && s3 < 1970) {
list = new ArrayList<String>();
list.add(s2);
} else {
list = new ArrayList<String>(0);
}
}
}
if (i.equals("N")) {
ResultSet rst = stmt.executeQuery("SELECT dateOfBirth from birthtable");
while (rst.next()) {
String s1 = rst.getString(1);
if (rst.wasNull()) {
s1 = null;
}
String s2 = s1.substring(s1.length() - 4);
int s3 = Integer.parseInt(s2);
if (list == null && s3 > 2000) {
list = new ArrayList<String>();
list.add(s2);
System.out.println(list);
} else {
list = new ArrayList<String>(0);
}
}
}
он вернет "0" для всех ситуаций "если", но System.out.println (), показывает [2006], который является одним из года столбца моей строки, хотя у меня есть две строки, которые он должен показать [2006,2009 ] .но это не так