Olá pessoal,
Estou fazendo meu primeiro programa usando jsp e servlets pra web, com acesso ao banco de dados firebird. Estou tendo um problema: passo a string de inserção para o executeUpdate e ele simplesmente nao funciona, retorna 0. Se eu inserir a mesma string através do IB_Expert, funciona perfeitamente, ou seja, o SQL está correto.
Acredito que não haja problema com a conexão, pq o troço conecta sem problema algum. De qualquer forma, vou postar uns trechos de códigos pra ver se algum de vocês pode me ajudar:
Código de conexão com o banco de dados (não dá nenhum erro nessa parte):
try{
Class.forName("org.firebirdsql.jdbc.FBDriver");
String url = "jdbc:firebirdsql:localhost/3050:E:\Leticia\Java\BD\teste.fdb";
String username = "SYSDBA";
String password = "masterkey";
connection = DriverManager.getConnection(url, username, password);
}catch(ClassNotFoundException ex){
System.out.println("Não foi possível encontrar o driver");
}catch(SQLException ex){
System.out.println("Não foi possível conectar ao servidor");
}
try {
statement = connection.createStatement();
}catch(SQLException ex){
System.out.println("Não foi possível conectar ao servidor");
}
Montagem do SQL e chamada da função:
String codigo = req.getParameter("codigo");
String nome = req.getParameter("nome");
String descricao = req.getParameter("descricao");
String unidade = req.getParameter("unidade");
String custo = req.getParameter("custo");
String estoque_min = req.getParameter("estoque_min");
String sql="INSERT INTO MATERIA_PRIMA (CODIGO,NOME,DESCRICAO,UNIDADE,CUSTO,ESTOQUE_MIN) VALUES ('" +codigo+ "','" +nome+ "','" +descricao+ "','"+unidade+ "','"+custo+ "','"+estoque_min+"');";
ConexaoBD con = null;
try {
con = new ConexaoBD();
int result = con.executeUpdate(sql);
if (result == 1) {
res.sendRedirect("/Cadastro/Efetuado.jsp");
}
O executeUpdate que está sendo chamado é uma função criada na classe de conexao, que chama o executeUpdate do statement. A função é:
public synchronized int executeUpdate(String update)throws SQLException {
int result = 0;
try{
result = statement.executeUpdate(update);
}catch(SQLException ex){
System.out.println("Não foi possível executar o update");
}
return result;
}
Nessa funcao, ao fazer o statement.executeUpdate passando a string, o troço simplesmente retorna 0, ou seja: não funciona.
Nem todo o código é de minha autoria, peguei bastante exemplos e foi em cima disso que saiu…
Desde já, agradeço a atenção