try块和ArrayList[Java]的问题
我目前正在用书籍创建一个库,我的意思是,我在数据库中存储书籍JDBCI没有任何问题,我在Jtable中显示这些书籍 但我的代码中有一个很大的问题,就是函数获取列并返回它:try块和ArrayList[Java]的问题,java,arraylist,Java,Arraylist,我目前正在用书籍创建一个库,我的意思是,我在数据库中存储书籍JDBCI没有任何问题,我在Jtable中显示这些书籍 但我的代码中有一个很大的问题,就是函数获取列并返回它: public ArrayList<Livre> getTable(){ /* Recupere toute la table de la base de données */ ArrayList<Livre> livres = new Array
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;
}
现在我有两本书,只是为了测试:
贝施莱尔
詹姆斯博士
++++++++++++++++++++
詹姆斯博士
詹姆斯博士
我不知道为什么第一个元素会复制第二个
注:
-我是法国人,评论是用法语写的
-Livre的意思是book是我创建的一个类,用来简化
页面数量、标题等特征您称为livres.getlivres.size-1而不是livres.geti:
您调用livres.getlivres.size-1而不是livres.geti:
您没有在for循环中使用增量计数器,因此每次都打印相同的值:
for(int i = 0; i < livres.size(); i++)
System.out.println(livres.get(livres.size()-1).getAuteur());
将您的打印更改为此打印:
for(int i = 0; i < livres.size(); i++)
System.out.println(livres.get(i).getAuteur());
您没有在for循环中使用增量计数器,因此每次都打印相同的值:
for(int i = 0; i < livres.size(); i++)
System.out.println(livres.get(livres.size()-1).getAuteur());
将您的打印更改为此打印:
for(int i = 0; i < livres.size(); i++)
System.out.println(livres.get(i).getAuteur());