У меня есть этот метод в моей базе данных class.and Я хочу получить часть данных из столбца, который является «dateOfBirth» в таблице MySQL, но я не знаю, почему list.size() является «0», но когда я использую System.out.println() в моем коде, он покажет только первую строку таблицы sql, хотя у меня есть две строки !!!sql и database
мой метод:
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]. Но это не так !!!
@ Уксус, спасибо, она идет хорошо, но я не знаю, как можно это код, который делает чувство ??? действительно, я не знаю, и я просто пишу код, но я не знаю правил написания хорошего кода. [:-(] – Johanna
Это может быть хорошим началом http://www.equivalence.co. uk/archives/101. Тогда возьмите некоторые книги, такие как «Чистый код» Роберта К. Мартина и «Рефакторинг» Мартина Фаулера и т. д. Это не так сложно. –