gpt4 book ai didi

java - try block 和 ArrayList 的问题 [Java]

转载 作者:行者123 更新时间:2023-12-01 20:19:49 26 4
gpt4 key购买 nike

我目前正在创建一个图书馆(我指的是书籍),我在数据库(JDBC)中存储书籍(我对此没有任何问题),并在 Jtable 中显示这些书籍。

但是我的代码中存在一个大问题,即获取列并返回它的函数:

public ArrayList<Livre> getTable(){

/* Recupere toute la table de la base de données */

ArrayList<Livre> livres = new ArrayList<Livre>();
try {

//Création d'un objet Statement
Statement state = conn.createStatement();
//L'objet ResultSet contient le résultat de la requête SQL
ResultSet result = state.executeQuery("SELECT * FROM `livres`");
//On récupère les MetaData
ResultSetMetaData resultMeta = result.getMetaData();

while (result.next()) {

int id = (int)result.getObject(1);
String titre = (String)result.getObject(2);
String auteur = (String)result.getObject(3);
int page = (int)result.getObject(4);
String resume = (String)result.getObject(5) != null ? (String)result.getObject(5) : "Non précisé";
int tome = (Integer)result.getObject(6) != null ? (Integer)result.getObject(6) : 0;
String parution = (String)result.getObject(7);
String editeur = (String)result.getObject(8);
String collection = (String)result.getObject(9);
String LangueDeParution = (String)result.getObject(10);
String Titreoriginal = (String)result.getObject(11) != null ? (String)result.getObject(11) : "Non précisé";
String LangueOriginal = (String)result.getObject(12) != null ? (String)result.getObject(12) : "Non précisé";

Livre o = new Livre(id,titre,auteur,page,resume,tome,parution,editeur,collection,LangueDeParution,Titreoriginal,LangueOriginal);

livres.add(o);

System.out.println(livres.get(livres.size()-1).getAuteur()); // print each Autors
}

System.out.println("\n++++++++++++++++++++\n");
// print each autors
for(Livre livre : livres) {
System.out.println(livre.getAuteur());
}

result.close();
state.close();

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


return livres;

}

它返回(我现在有两本书,仅供测试):

贝什雷勒P.D.詹姆斯

++++++++++++++++++++++

P。 D·詹姆斯P.D.詹姆斯

我不知道为什么第一个元素复制第二个......

注意:- 我是法国人,评论是法语的- Livre()(意味着书)是我创建的一个类,用于简化页数、标题等特征

最佳答案

您调用 livres.get(livres.size()-1) 而不是 livres.get(i):

for(int i = 0; i < livres.size(); i++)
System.out.println(livres.get(i).getAuteur());

另一种不太可能犯这种错误的编写方法是 for-each 循环:

for(Livre livre : livres) {
System.out.println(livre.getAuteur());
}

关于java - try block 和 ArrayList 的问题 [Java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45084036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com