Désolé de bloquer votre défilé, mais vous ne devriez pas utiliser un ArrayList de 3 (ou aucun) de types différents pour commencer. Si les informations sont liées, créez une classe qui contient les informations liées et créez une ArrayList qui ne contient qu’un seul type: les objects de cette classe.
Modifier 1: Par exemple, disons à une classe de contenir les données comme suit:
class SqlData { private Ssortingng textData; private int intData; private long longData; public SqlData(Ssortingng textData, int intData, long longData) { this.textData = textData; this.intData = intData; this.longData = longData; } public Ssortingng getTextData() { return textData; } public int getIntData() { return intData; } public long getLongData() { return longData; } }
et utilisé comme tel:
List sqlDataList = new ArrayList(); sqlDataList.add(new SqlData("Hello World", 1, 11L)); for (int i = 0; i < sqlDataList.size(); i++) { try { sqlPreparedStatement.setString(i + 1, sqlDataList.get(i).getTextData()); sqlPreparedStatement.setInt(i + 1, sqlDataList.get(i).getIntData()); sqlPreparedStatement.setLong(i + 1, sqlDataList.get(i).getLongData()); } catch (SQLException e) { e.printStackTrace(); } }
Pourquoi faites-vous cela si difficile? PreparedStatement a une méthode setObject() – utilisez simplement ceci:
List list = new ArrayList(); list.add(new Ssortingng("Hello World")); list.add(new Integer(1)); list.add(new Long(1l)); for (int i = 0; i < list.size(); i++) sqlPreparedStatement.setObject(i + 1, list.get(i)); // NOTE: columns count from 1
REMARQUE: L'API Java SQL compte tous les éléments à partir de 1 et non de zéro. Les colonnes sont donc numérotées 1 ... size () et non 0 ... size () - 1.