DAO com Hibernate

0 respostas
S

Estou desenvolvendo uma pequena aplicacao no Eclipse que se resume no seguinte:

Uma pagina JSP que coleta tres entradas de texto envia para uma servlet que instancia uma entidade para receber essas tres entradas, passa essa entidade para a DAO que deve conectar com o banco mySQL usando hibernate para persistir os dados.

Depois de muito custo acho que consegui fazer o que eu queria, ficou assim:

Inicialmente tenho um formulario que coleta três entradas:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Demonstração Final</title>
</head>
<body>
<div style="text-align: center">
<form id="formularioDemo" action="Demo" method="post">
Entrada 1<input name="entrada1" type="text"><br />
Entrada 2<input name="entrada2" type="text"><br />
Entrada 3<input name="entrada3" type="text"><br /><br />
<input value="Enviar" type="submit">
</form>
</div>
</body>
</html>

Depois tenho as servlet que recebe a requisição do formulário:

package fpu.buffet.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.rmi.ServerException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import fpu.buffet.dao.DemoDAO;
import fpu.buffet.to.Demo;

public class DemoServlet extends HttpServlet {
	
	protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServerException, IOException, ServletException   {   
	
	String entrada1 = request.getParameter("entrada1");
	String entrada2 = request.getParameter("entrada2");
	String entrada3 = request.getParameter("entrada3");
	
	Demo myDemo = new Demo();
	
	myDemo.setEntrada1(entrada1);
	myDemo.setEntrada2(entrada2);
	myDemo.setEntrada3(entrada3);
	
	DemoDAO myDemoDAO = new DemoDAO();
	myDemoDAO.persisteDemo(myDemo);	
	
	}	
}

A entidade Demo está assim:

package fpu.buffet.to;

public class Demo {
	private Object entrada1;
	private Object entrada2;
	private Object entrada3;
	
	public void setEntrada1(Object entrada1){
		this.entrada1 = entrada1;
	}

	public Object getEntrada1(){
		return entrada1;
	}
	
	public void setEntrada2(Object entrada2){
		this.entrada2 = entrada2;
	}
	
	public Object getEntrada2(){
		return entrada2;
	}	
	
	public void setEntrada3(Object entrada3){
		this.entrada3 = entrada3;
	}	
	
	public Object getEntrada3(){
		return entrada3;
	}	
}

DemoDAO ficou assim:

package fpu.buffet.dao;

import org.hibernate.*;

import fpu.buffet.dao.hibernate.HibernateUtility;
import fpu.buffet.to.Demo;


public class DemoDAO {
	
	public void persisteDemo(Object presiste){
		
		Session sessao = HibernateUtility.getSession(); //Abrindo uma sessão
		
		Transaction transaction = sessao.beginTransaction(); //Iniciando uma transação


		sessao.save(presiste); //Transformando o objeto transiente em um objeto persistente no banco de dados
		
		transaction.commit(); //Finalizando a transação
		
		sessao.close(); //Fechando a sessão
	}

}

HibernateUtility para iniciar a sessão:

package fpu.buffet.dao.hibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtility {
	private static SessionFactory factory;

	static {

		try {

			factory = new Configuration().configure().buildSessionFactory();

		} catch (Exception e) {

			e.printStackTrace();

			factory = null;
		}
	}

	public static Session getSession() {

		return factory.openSession();
	}
}

O problema é que quando rodo o trem dá erro:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
	fpu.buffet.dao.hibernate.HibernateUtility.getSession(HibernateUtility.java:26)
	fpu.buffet.dao.DemoDAO.persisteDemo(DemoDAO.java:12)
	fpu.buffet.controller.DemoServlet.doPost(DemoServlet.java:30)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
Apache Tomcat/6.0.20

Alguém, por favor, consegue me ajudar a resolver o problema acima?

Criado 28 de agosto de 2009
Respostas 0
Participantes 1