publicvoidatualizar(Titulotitulo){PreparedStatementps=null;Connectionconn=null;if(titulo==null)System.out.println("O valor passado não pode ser nulo");try{StringSQL="UPDATE titulos SET nome=? WHERE isbn=?";conn=this.conn;ps=conn.prepareStatement(SQL);ps.setString(1,titulo.getNome());ps.setString(2,titulo.getIsbn());ps.executeUpdate();}catch(SQLExceptionsqle){System.out.println("Erro ao atualizar dados "+sqle);}finally{ConnectionLocadoraFactory.closeConnection(conn,ps);}}
Erro ao atualizar dados com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'nome' cannot be null
Como o Erro diz: “Column ‘nome’ cannot be null”.
O atributo nome do seu Objeto Titulo provavelmente está nulo. Como você está instanciando o objeto Titulo e atribuindo um valor ao atributo nome deste objeto? Poste o código, pois nele provavelmente está o problema.
felipealves.gnu
thiagotn:
felipealves.gnu:
Erro ao atualizar dados com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'nome' cannot be null
Como o Erro diz: “Column ‘nome’ cannot be null”.
O atributo nome do seu Objeto Titulo provavelmente está nulo. Como você está instanciando o objeto Titulo e atribuindo um valor ao atributo nome deste objeto? Poste o código, pois nele provavelmente está o problema.
Segue o trecho da Servlet onde está sendo instanciado o objeto titulo.
Coloque também o código do seu formulário de inserção de Título.
felipealves.gnu
segue abaixo
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>Inserir Títulos</title></head><body><formaction="LocadoraServlet?cmd=addtit"method="post"><table><tr><td>ISBN</td><td><inputtype="text"name="isbn"/></td></tr><tr><td>Título</td><td><inputtype="text"name="nome"/></td></tr><tr><td>Gênero</td><td><inputtype="text"name="genero"/></td></tr><tr><td>Tipo</td><td><selectname="tipo"><optionvalue="1">Livro</option><optionvalue="2">DVD</option><optionvalue="3">CD</option></select></td></tr><tr><td><inputtype="submit"name="btCadastrar"value="Enviar"/></td></tr></table></form></body></html>
o método de salvar segue abaixo, (este método funciona perfeitamente), agora o método de ATUALIZAR é que não funciona
publicvoidsalvar(Titulotitulo){PreparedStatementps=null;Connectionconn=null;if(titulo==null)System.out.println("O valor passado não pode ser nulo");try{StringSQL="INSERT INTO titulos (isbn, nome, genero, tipo)"+"VALUES (?, ?, ?, ?)";conn=this.conn;ps=conn.prepareStatement(SQL);ps.setString(1,titulo.getIsbn());ps.setString(2,titulo.getNome());ps.setString(3,titulo.getGenero());ps.setInt(4,titulo.getTipo());ps.executeUpdate();}catch(SQLExceptionsqle){System.out.println("Erro ao inserir dados "+sqle);}finally{ConnectionLocadoraFactory.closeConnection(conn,ps);}}
Thiago obrigado pela paciência e atenção,
o erro estava no caminho do href q era <a href="LocadoraServlet?cmd=atu&isbn=<%=t.getIsbn()%>"> e não <a href="LocadoraServlet?cmd=atualizar&isbn=<%=t.getIsbn()%>">
fazendo com que a servlet se perdesse.