J'ai cette méthode dans ma base de données class.and Je veux obtenir une partie des données d'une colonne qui est « dateOfBirth » dans le tableau MySQL, mais je ne sais pas pourquoi le list.size() est "0" mais quand j'utilise System.out.println() dans mon code il montrera juste la première ligne de la table sql, bien que j'aie deux lignes !!!sql et base de données
ma méthode:
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);
}
}
}
il retournera « 0 » pour tous « si » la situation, mais le System.out.println(), spectacles [2006] qui est l'un de l'année de la colonne de ma ligne, bien que J'ai deux rangs qu'il doit montrer [2006,2009] .mais pas !!!
@ vinaigre, merci, ça va bien, mais je ne sais pas comment un code qui fait un sens ??? vraiment, je ne sais pas et je viens d'écrire un code, mais je ne connais pas les règles d'écriture d'un bon code. [:-(] – Johanna
Cela peut être un bon début http://www.equivalence.co. uk/archives/101. Ensuite, prenez quelques livres comme Clean Code par Robert C. Martin, et Refactoring par Martin Fowler, etc. Ce n'est pas si difficile. –