Olá, pessoal!
Já tentei as vezes… não encontramos para resolver a problemas… veja texto de erro…
Mensagem de erro…
Tam: 3
Erro de acesso da Tabela
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'comentario' cannot be null
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1268)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1541)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1455)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1440)
at DAO.ArquivoDAO.incluirFotos(ArquivoDAO.java:25)
at IncluirArquivoServlet.doPost(IncluirArquivoServlet.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
[email removido]
Servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean isMultiplad = ServletFileUpload.isMultipartContent(request);
Arquivos a = new Arquivos();
if(isMultiplad){
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> itens = null;
try {
itens = (List<FileItem>) upload.parseRequest(request);
System.out.println("Tam: "+itens.size());
} catch (FileUploadException e) {
System.err.println("Erro!!"+e.getMessage());
e.printStackTrace();
}
for(FileItem item : itens){
if(!item.isFormField()){
a.setFotos(item.get());
} else if(item.getString().equals("nome")){
a.setComentario(item.getString());
} else if(item.getString().equals("idprod")){
a.setIdprodutos(Integer.parseInt(item.getString()));
}
}
ArquivoDAO dao = new ArquivoDAO();
dao.incluirFotos(a);
}
response.sendRedirect("CadastroArquivo.jsp");
}
}
Cadastro de arquivo
<form action="/LojaVirtualAula/IncluirArquivoServlet" method="post" enctype="multipart/form-data">
<table>
<tr><td>Produtos:</td><td align="left">
<select name="idprod" size="1">
<option value=" "><center>----Produtos----</center></option>
<% for(int i=0; i<todos.size(); i++) {%>
<option value="<%=todos.get(i).getId() %>">Cód: <%=todos.get(i).getId() %> - <%=todos.get(i).getDescricao() %></option>
<%} %>
</select>
<tr><td align="left">Nome:</td><td align="left"><input type="text" name="nome"></td></tr>
<tr><td align="left">Arquivo:</td><td><input type="file" name="arquivo"></td></tr>
<tr><td colspan="2"><input type="submit" value="Enviar"></td></tr>
</table>
</form>
Classe ArquivoDAO (armazena os bancos de dados)
public class ArquivoDAO {
public void incluirFotos(Arquivos arq){
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/lojavirtualaula","root","");
PreparedStatement st = conn.prepareStatement("INSERT INTO fotosprodutos VALUES(null,?,?,?)");
st.setString(1,arq.getComentario());
st.setBytes(2,arq.getFotos());
st.setInt(3,arq.getIdprodutos());
st.executeUpdate();
} catch (ClassNotFoundException e) {
System.err.println("Erro de acesso Bando de Dados");
e.printStackTrace();
} catch (SQLException e) {
System.err.println("Erro de acesso da Tabela");
e.printStackTrace();
}
}
}
Espero que vcs me ajudem 