public int inserirPrograma(){
if(this.programa == null){
return -1;
}
try {
PreparedStatement stmtInsere = conn.prepareStatement("INSERT INTO programa VALUES (null,?,?,?)");
stmtInsere.setString(2, programa.getName());
stmtInsere.setString(3, programa.getSerial());
stmtInsere.setString(4, programa.getCaminho());
return stmtInsere.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
return -1;
}
}
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conexao {
public static Connection getConexao(){
try{
Driver d = (Driver)Class.forName
("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection c = DriverManager.getConnection
("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=src/bd/ListPrograms.mdb");
return c;
}catch(SQLException e){
e.printStackTrace();
System.err.println("Erro de Conexão!");
return null;
}catch(ClassNotFoundException c){
c.printStackTrace();
System.err.println("Classe Não Encontrada!");
return null;
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
Toda vez q tento adicionar é retornada a seguinte exceção:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(JdbcOdbcPreparedStatement.java:1023)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setChar(JdbcOdbcPreparedStatement.java:3057)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setString(JdbcOdbcPreparedStatement.java:766)
at persistent.ProgramaDAO.inserirPrograma(ProgramaDAO.java:31)
O erro aponta para essa linha: stmtInsere.setString(4, programa.getCaminho());
POr favor se alguém puder me dar uma luz...