Pessoal me ajude, meu conhecimento em java é limitado e estou precisando de uma ajuda para a conclusão do meu tcc.
esta rodando sem erros porém não esta gravando no banco, a unica coisa que grava é o campo "foto" porem ele grava somente a palavra "imagemreceita" toda vez que tento incluir algo. Tentei achar algo aqui porem não existe nada parecido com o que esta ocorrendo comigo.
Não é problema de banco de dados nem conexão ... antes deu implementar o upload tudo estava funcionando perfeitamente.
OBS: o upload esta funcionando normal! somente o insert no banco que não ta funcionando.
JSP de cadastro
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cadastrando Receita || Odeio Alface</title>
<link href="layout/stylesADM.css" rel="stylesheet" type="text/css" />
</head>
<body id="back">
<div id="logo"></div>
<div id="Conteiner">
<div id="botoes">
<div class="bot"><a href="" class="razd_but" title="Incio">Inicio</a></div>
<div class="bot"><a href="ReceitasAdm.html" class="razd_but" title="Receitas">Receitas</a></div>
<div class="bot"><a href="VideosAdm.html" class="razd_but" title="Videos">Videos</a></div>
<div class="bot"><a href="Cadastrosejavegano.html" class="razd_but" title="Conceitos Veganos">Seja Vegano</a></div>
<div ><a href="NoticiasAdm.html" title="">Noticias</a></div> </div>
</div>
<div id="submenu1">
<img src="layout/images/cadastroreceita.png" />
</div>
<div id="ConteinerCadastro">
<form action="serveletCadastrarReceita_1" method="post" enctype="multipart/form-data">
<table>
<div class="textoCadastro">
<h4>Titulo:</h4>
</div>
<div class="caixacadastro">
<textarea name="NomeReceita" cols="80" rows="1">Titulo da Receita </textarea>
</div>
<div class="textoCadastro">
<h4>Imagem:</h4>
</div>
<div class="caixacadastro">
<input type="hidden" id="tipoForm" name="tipoForm" value="imagemreceita">
<!--form method=post action=/cgi-bin/donothing enctype=multipart/form-data></form-->
<input type="file" name="imagemreceita" size="40" width="80px" />
</div>
<div class="textoCadastro">
<h4>Resumo:</h4>
</div>
<div class="caixacadastro">
<textarea name="ResumoReceita" cols="80" rows="4">Digite o resumo da Receita (Breve Comentario até 300 Caracteres) </textarea>
</div>
<div class="textoCadastro">
<h4>Ingradientes:</h4>
</div>
<div class="caixacadastro">
<textarea name="IngradientesReceita" cols="80" rows="15">Digite aqui todos ingradientes necessarios para a receita. </textarea>
</div>
<div class="textoCadastro">
<h4>Modo de Preparo:</h4>
</div>
<div class="caixacadastro">
<textarea name="MododefazerReceita" cols="80" rows="25">Como preparar a Receita ?</textarea>
</div>
<div class="textoCadastro">
<h4>Referências:</h4>
</div>
<div class="caixacadastro">
<textarea name="ReferenciaReceita" cols="80" rows="1">Se a receita não seja sua, recomendamos inserir a referência da mesma aqui!</textarea>
</div>
<div class="Botaosalvar">
<td colspan="2" ><input type="submit" value="cadastrar" class="Salvar" name="Submit" ></td>
</div>
</form>
</table>
</div>
<div class="rodape">
<h3>Copyright © 2012 Fabio Henrique & Marcelo Rossi Unipac Uberlândia</h3></div>
</body>
</html>
Servlet
import br.com.ProjetoSiteReceita.mvc.Receita;
import br.com.ProjetoSiteReceita.mvc.ReceitaDAO;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@SuppressWarnings("serial")
public class serveletCadastrarReceita_1 extends HttpServlet {
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean isMultiPart = FileUpload.isMultipartContent(request);
if (isMultiPart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
String NomeReceita = "";
String ResumoReceita = "";
String IngradientesReceita = "";
String MododefazerReceita = "";
String ReferenciaReceita = "";
String imagemreceita = "";
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.getFieldName().equals("tipoForm")) {
imagemreceita = item.getString();
}
if (!item.isFormField()) {
if (item.getName().length() > 0) {
this.inserirImagemDiretorio(item);
}
if (item.getFieldName().equals("NomeReceita")) {NomeReceita = item.getString();}
if (item.getFieldName().equals("ResumoReceita")) { ResumoReceita = item.getString(); }
if (item.getFieldName().equals("IngradientesReceita")) { IngradientesReceita = item.getString();}
if (item.getFieldName().equals("MododefazerReceita")) { MododefazerReceita = item.getString();}
if (item.getFieldName().equals("ReferenciaReceita")) { ReferenciaReceita = item.getString();}
Receita rt = new Receita();
rt.setNomeReceita(NomeReceita);
rt.setImagemreceita(imagemreceita);
rt.setResumoReceita(ResumoReceita);
rt.setIngradientesReceita(IngradientesReceita);
rt.setMododefazerReceita(MododefazerReceita);
rt.setReferenciaReceita(ReferenciaReceita);
// Instancia ContatoDAO
ReceitaDAO dao = new ReceitaDAO();
dao.cadastrarReceita(rt);
RequestDispatcher rd = request.getRequestDispatcher("/AdmReceitas.jsp");
rd.forward(request, response);
}
}
} catch (FileUploadException ex) {
// ex.printStackTrace();
} catch (Exception ex) {
// ex.printStackTrace();
}
}
}
// implementação de demais métodos do Servlet.
private void inserirImagemDiretorio(FileItem item) throws IOException {
//Pega o diretório /logo dentro do diretório atual de onde a
//aplicação está rodando
String caminho = getServletContext().getRealPath("/logo") + "/";
// Cria o diretório caso ele não exista
File diretorio = new File(caminho);
if (!diretorio.exists()){
diretorio.mkdir();
}
// Mandar o arquivo para o diretório informado
String nome = item.getName();
String arq[] = nome.split("\\\\");
for (int i = 0; i < arq.length; i++) {
nome = arq[i];
}
File file = new File(diretorio, nome);
FileOutputStream output = new FileOutputStream(file);
InputStream is = item.getInputStream();
byte[] buffer = new byte[2048];
int nLidos;
while ((nLidos = is.read(buffer)) >= 0) {
output.write(buffer, 0, nLidos);
}
output.flush();
output.close();
}
}
ReceitaDAO
package br.com.ProjetoSiteReceita.mvc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class ReceitaDAO {
private Connection conn;
public ReceitaDAO(){
this.conn = new ConnectionFactory().getConnection();
}
//método de inserir
public void cadastrarReceita(Receita rt){
String sql = "insert into receitas "
+ "(nome,foto,resumo,ingradientes,mododefazer,referencia) "
+ "values (?,?,?,?,?,?)";
try{
PreparedStatement stmt = conn.prepareStatement(sql);
//setando os valores
stmt.setString(1, rt.getNomeReceita());
stmt.setString(2, rt.getImagemreceita());
stmt.setString(3, rt.getResumoReceita());
stmt.setString(4, rt.getIngradientesReceita());
stmt.setString(5, rt.getMododefazerReceita());
stmt.setString(6, rt.getReferenciaReceita());
//executando
stmt.execute();
stmt.close();
}
catch(SQLException e){
throw new RuntimeException(e);
}
}
}