我有一条错误消息 java.sql.SQLException:列索引超出范围,7> 6。我认为我的问题是请求SQL?我不知道问题是否是我的请求sql ???这是我的信息代码......
public class DAOCollabosMySQL implements DAOCollabos {
private static DAOCollabosMySQL uniqueInstance = new DAOCollabosMySQL();
public static DAOCollabosMySQL getInstance()
{
return uniqueInstance;
}
/* Sélectionne tous les appareils et les renvoie dans une liste chaînée */
public ArrayList <Collabo> selectCollabos ()
{
ArrayList <Collabo> myList = new ArrayList();
String req = "SELECT IdentApp, A.IdentI, DenomCat, A.IdentM, NomM, PrenomM, SexeM, NaissM, A.CodeA, TitreA, DateArrivee, Nom FROM collabo A, musicien E, instrument C, album D WHERE A.IdentI = C.IdentI AND A.IdentM = E.IdentM AND A.CodeA = D.CodeA ORDER BY 1 ";
ResultSet resu = ConnexionMySQL.getInstance().selectQuery (req);
try {
while (resu.next())
{
myList.add(new Collabo(resu.getInt(1),
new Instrument (resu.getInt(2),resu.getString(3)),
new Musicien (resu.getInt(4),resu.getString(5),resu.getString(6),resu.getString(7), resu.getDate(8)),
new Album( resu.getString(9), resu.getString(10), resu.getDate(11), resu.getString(12))));
}
}
catch (SQLException e)
{
System.out.println(e.toString());
System.exit(-1);
}
return myList;
}
/* Sélectionne tous les appareils d'une certaine catégorie et d'un certain etat
* et les renvoie dans une liste chaînée.
* si idCat=0 cela signifie qu'on veut toutes les categories
* si idEtat=0 cela signifie qu'on veut tous les etats
*/
public ArrayList <Collabo> selectCollabos (int idCat, int idEtat)
{
ArrayList <Collabo> myList = new ArrayList();
String req;
if (idCat != 0 && idEtat != 0)
{
req = "Select IdentApp, A.IdentCat, DenomCat, " +
"A.IdentM, NomM, CodeA from collabo A, musicien E, " +
"instrument C where A.IdentM = E.IdentM and A.IdentCat = C.IdentCat" +
" and A.IdentCat = " + idCat + " and A.identM = " + idEtat + " order by 1";
}
else if (idCat != 0)
{
req = "Select IdentApp, A.IdentI, DenomCat, " +
"A.IdentM, NomM, CodeA from collabo A, musicien E, " +
"instrument C where A.IdentM = E.IdentM and A.IdentI = C.IdentI" +
" and A.IdentI = " + idCat + " order by 1";
}
else if (idEtat != 0)
{
req = "Select IdentApp, A.IdentI, DenomCat, " +
"A.IdentM, NomM, CodeA from collabo A, musicien E, " +
"instrument C where A.IdentM = E.IdentM and A.IdentI = C.IdentI" +
" and A.IdentMt = " + idEtat + " order by 1";
}
else
{
req = "Select IdentApp, A.IdentI, DenomCat, " +
"A.IdentM, NomM, CodeA from collabo A, musicien E, " +
"instrument C where A.IdentM = E.IdentM and A.IdentI = C.IdentI" +
" order by 1";
}
ResultSet resu = ConnexionMySQL.getInstance().selectQuery (req);
try {
while (resu.next())
{
//cr�ation de l'objet Appareil
myList.add(new Collabo(resu.getInt(1),
new Instrument (resu.getInt(2),resu.getString(3)),
new Musicien (resu.getInt(4),resu.getString(5),resu.getString(6),resu.getString(7), resu.getDate(8)),
new Album( resu.getString(9), resu.getString(10), resu.getDate(11), resu.getString(12))));
}
}
catch (SQLException e)
{
System.out.println(e.toString());
System.exit(-1);
}
return myList;
}
/* Insère un appareil passé en paramètre dans la table Appareil. Renvoie true si
�a s'est bien passé, false sinon */
public boolean insertCollabo (Collabo col)
{
//System.out.println("Date arriv�e : " + app.getDateArriveeSQL());
boolean ok = ConnexionMySQL.getInstance().actionQuery("Insert into collabo (IdentI, " +
"IdentM, CodeA) values ('" + col.getInstrumentApp().getIdentI() + "','" + col.getMusicienApp().getIdentM() + "','" + col.getAlbumApp() +
"'" + ")");
return ok;
}
请问您有什么想法吗?