estou utlizando a api jxl para ler de uma planilha do excel dados (data - valor) e o programa java atualiza meu banco com esses dados, o problema eh que fiz um loop para que leia do programa do excel enquanto tiver dados, mas ele da um ArrayOutOfBoundsException:4, isso com 4 valores no excel, com tres valores no formato mencionado acima ele conseguia fazer toda inserção no banco, vou postar o código ele não ta com uma sintaxe boa pq ainda ta como teste:
try{
Workbook workbook = Workbook.getWorkbook(new File("JavaExcel.xls"));
Sheet sheet = workbook.getSheet(0);
while ( sheet.getColumn(0).toString().length() > 0 & sheet.getColumn(1).toString().length() > 0){
Cell a2 = sheet.getCell(ja,ia);
Cell b2 = sheet.getCell(jb,ib);
numberb2 = b2.getContents();
numbera2 = a2.getContents();
java.util.Date dt = new java.util.Date();
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
try {
dt = formatador.parse(numbera2);
} catch (Exception e) {
e.printStackTrace();
}
double numberB2 = Double.parseDouble(numberb2);
java.sql.Date sqlDate = new java.sql.Date(dt.getTime());
PreparedStatement pstmt0 = connection.prepareStatement("SELECT ID FROM TbSeries WHERE Nome = ?");
pstmt0.setObject(1, "BRL");
ResultSet rs0 = pstmt0.executeQuery();
boolean ret = rs0.next();
int IDSerie = rs0.getInt("ID");
PreparedStatement pstmt1 = connection.prepareStatement("DELETE FROM TbValorSerie WHERE IDSerie = ? AND Data = ?");
pstmt1.setInt(1, IDSerie);
pstmt1.setDate(2, sqlDate);
int rs1 = pstmt1.executeUpdate();
PreparedStatement pstmt = connection.prepareStatement("INSERT INTO TbValorSerie( Data , Valor, IDSerie) VALUES ( ?, ?, ?)");
pstmt.setDate(1, sqlDate);
pstmt.setDouble(2, numberB2);
pstmt.setInt(3, IDSerie);
int rs = pstmt.executeUpdate();
if (rs == 1){
System.out.println("inserção realizada\n");
}
//pstmt.close();
ia++;
ib++;
}
workbook.close();
} catch (IOException e){
e.printStackTrace();
} catch (BiffException be){
be.printStackTrace();
} catch (SQLException ex){
ex.printStackTrace();
}
}
essa eh parte que realmente importa.Dentro do while fiz a condição do loop que pelo jeito num ta valendo!
alguém tem alguma idéia??