AJUDA - Hibernate na WEB

2 respostas
D

Ola, boa noite a todos..

Tenho que desenvolver um projeto para uma oportunidade de estagio em 3 dias.. tenho que criar um CRUD com Hibernate..

Estou com duvidas primeiro em inserir.. peguei varios tutorias na WEB e muitos estao dando erro.. ate que consegui um aqui qe nao deu erro no codigo mas nao consegue inserir no banco.. creio eu que os mapeamentos e a conexão estao tudo certo..

Segue meu codigo:

CLIENTE DAO

package persistencia.com;


import modelo.com.Cliente;
import org.hibernate.*;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ClienteDAO {


	private SessionFactory factory;

	public ClienteDAO() throws Exception{
		AnnotationConfiguration cfg = new AnnotationConfiguration();
                cfg.addAnnotatedClass(Cliente.class);
                SchemaExport se = new SchemaExport(cfg);
                se.create(true, true);

	}

	public void Inserir(Cliente c) throws Exception {
		Session session = factory.openSession();
		session.save(c);
		session.flush();
		session.close();
	}

	public void Alterar(Cliente c) throws Exception {
		Session session = factory.openSession();
		session.update(c);
		session.flush();
		session.close();
	}
	public void Excluir(Cliente c) throws Exception {
		Session session = factory.openSession();
		session.delete(c);
		session.flush();
		session.close();
	}
}

CONTROLE
[/code]
<%@page import="modelo.com.Cliente, persistencia.com.ClienteDAO" %>

<%
try{

String action = request.getParameter("action");

if (action.equalsIgnoreCase("inserir")){
Cliente c = new Cliente();
c.setCpf(request.getParameter("cpf"));
c.setNome(request.getParameter("nome"));
c.setPlaca(request.getParameter("placa"));
c.setModelo(request.getParameter("modelo"));
c.setCor(request.getParameter("cor"));
ClienteDAO cd = new ClienteDAO();
try{
cd.Inserir(c);
request.setAttribute("msg", "Cadastrado com sucesso!");
request.getRequestDispatcher("index.jsp").forward(request, response);

}catch(Exception e){
out.print("Erro:"+e.getMessage());
}

}

}catch(NullPointerException nexp){
out.print("Você deveria estar vendo este aviso");

}

%>
[/code]

INDEX:

<%@page import="modelo.com.Cliente, persistencia.com.ClienteDAO" %>
<%@page import="java.util.List" %>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Página principal</title>
    <body>
        <form action="controle.jsp?action=inserir" method="post">
            <label for="cpf">Cpf:</label><br />
            <input type="text" name="cpf" value="" /><br />
            <label for="nome">Nome:</label><br />
            <input type="text" name="nome" value="" /><br />
            <label for="placa">Placa:</label><br />
            <input type="text" name="placa" value="" /><br />
            <label for="modelo">Modelo:</label><br />
            <input type="text" name="modelo" value="" /><br />
            <label for="cor">Cor:</label><br />
            <input type="text" name="cor" value="" /><br />
            <input type="submit" value="Cadastrar Cliente" />
        </form><br />
        <font color="#FF0000">
        ${msg}
        </font>
        <br />





        </body>
</html>

PODE SER UMA COISA BEM BASICA, PARA ALGUNS MAS PARA MIN PODE FAZER MUITA DIFERENÇA.. FICARIA MUITO AGRADECIDO COM UMA AJUDA.

Obrigado.

2 Respostas

D

CORRIGINDO

CONTROLE:

<%@page import="modelo.com.Cliente, persistencia.com.ClienteDAO" %>

<%
try{

String action = request.getParameter("action");

       if (action.equalsIgnoreCase("inserir")){
        Cliente c = new Cliente();
        c.setCpf(request.getParameter("cpf"));
        c.setNome(request.getParameter("nome"));
        c.setPlaca(request.getParameter("placa"));
        c.setModelo(request.getParameter("modelo"));
        c.setCor(request.getParameter("cor"));
        ClienteDAO cd = new ClienteDAO();
        try{
        cd.Inserir(c);
        request.setAttribute("msg", "Cadastrado com sucesso!");
        request.getRequestDispatcher("index.jsp").forward(request, response);

        }catch(Exception e){
        out.print("Erro:"+e.getMessage());
        }


}



}catch(NullPointerException nexp){
out.print("Você deveria estar vendo este aviso");

}



%>
romarcio

Ta dando alguma exceção?

Todo caso, tenta assim, importa o Transaction do pacote Hibernate.

public void Inserir(Cliente c) throws Exception { Session session = factory.openSession(); Transaction tx = session.beginTransaction(); session.save(c); tx.commit(); session.flush(); session.close(); }

Criado 18 de janeiro de 2011
Ultima resposta 18 de jan. de 2011
Respostas 2
Participantes 2