The Sun JDBC Tutorial shows how to place PreparedStatement values in a loop, in this manner:

The statement below works. But I need to place all the values into a loop
Code:
		String registerSoldiersStr =
			" INSERT INTO Soldiers ( " +
			" 	name, " +
			" 	rank, " +
			" 	serial_number, " +
			" ) " +
			" SELECT " +
			"	name, " +	//	name,
			"	?,	" +		//	rank,
			" 	CONCAT( SourceTable.group_number, ' - ', LPAD( ?,3,\"0\" ) ) "	//	serial_number,
			" FROM SourceTable " +
			" WHERE some_id = ? "
		;
				
				
		PreparedStatement registerSoldiers = con.prepareStatement ( registerSoldiersStr );
		for( int i = 0; i < sources; i++ ) {
			registerSoldiers.setString( 1, (String)((Vector)sourceDataVector.elementAt(i)).elementAt(0) );	//		
			registerSoldiers.setString( 2, (String)((Vector)sourceDataVector.elementAt(i)).elementAt(1) );	//		
			
			int rs = registerSoldiers.executeUpdate();
		}
How would I set all of the values above in a loop, as below?
Code:
			...
			" SELECT " +
			"	?, " +		//	name,
			"	?,	" +		//	rank,
			" 	?			//	serial_number,
			" FROM SourceTable " +
			" WHERE some_id = ? "
		;
		
		
		PreparedStatement registerSoldiers = con.prepareStatement ( registerSoldiersStr );
		for( int i = 0; i < sources; i++ ) {
			registerSoldiers.setString( 1, ~then "name" value~ );	//		
			registerSoldiers.setString( 2, (String)((Vector)sourceDataVector.elementAt(i)).elementAt(1) );	//		
			registerSoldiers.setString( 3, (String)((Vector)sourceDataVector.elementAt(i)).elementAt(2) );	//		
			registerSoldiers.setString( 4, ~then concatenated value~);	//		
			
			int rs = registerSoldiers.executeUpdate();
		}
Many thanks in advance.