Essa é a entidade projeto :
@Entity
public class Projeto {
@Id
@GeneratedValue
private int id;
private String nome;
private String desc;
private String prevFinal;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getPrevFinal() {
return prevFinal;
}
public void setPrevFinal(String prevFinal) {
this.prevFinal = prevFinal;
}
}
Assim está o persistence.xml :
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="bancogestao" transaction-type="JTA">
<!-- provedor/implementacao do JPA -->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- entidade mapeada -->
<jta-data-source>java:app/bancogestao</jta-data-source>
<class>Entidades.Projeto</class>
<class>Entidades.Tarefa</class>
<class>Entidades.Equipe</class>
<class>Entidades.Pessoa</class>
<class>Entidades.Recurso</class>
<properties>
<!-- dados da conexao -->
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/bancogestao"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<!-- propriedades do hibernate -->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<!-- atualiza o banco, gera as tabelas se for preciso -->
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
Assim está a página web :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<center>
<h1>Cadastro Projeto</h1>
<form action="mvc" method="POST">
Nome do Projeto : <input type="text" name="nome" /><br/><br/><br/>
Descrição do Projeto : <input type="text" name="desc" /><br/><br/><br/>
Previsão de Finalização : <input type="text" name="prev" /><br/><br/><br/>
<input type="hidden" name="logica" value="CadastraProjeto"/>
<input type="submit" value="Enviar"/>
</form>
</center>
</body>
</html>
Assim está o ControllerServlet :
@WebServlet("/mvc")
public class ControllerServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException {
String logica = request.getParameter("logica");
String paginaErroServlet = "erroServlet.jsp";
try {
if(logica.equals("CadastraProjeto"))
{
ProjetoController projeto = new ProjetoController();
projeto.salvar(request.getParameter("nome"),
request.getParameter("desc"), request.getParameter("prevFinal"));
}
} catch (ClassNotFoundException ex) {
request.getRequestDispatcher(paginaErroServlet).forward(request,
response);
}
}
}
Assim está o Logica.java :
public interface Logica {
/**
* Executa uma ação
* @param request requisição do usuário
* @param response resposta à requisição
* @return String contendo o nome da página para a qual o site deverá ser direcionado
*/
String execute(HttpServletRequest request, HttpServletResponse response);
}
Esse é o ProjetoController :
public class ProjetoController {
private ProjetoDAO daoProjeto;
public ProjetoController() throws ClassNotFoundException, SQLException
{
daoProjeto = new ProjetoDAO();
}
public void salvar(String nome, String desc, String prevFinal) throws SQLException
{
Projeto projeto = new Projeto();
projeto.setNome(nome);
projeto.setDesc(desc);
projeto.setPrevFinal(prevFinal);
daoProjeto.salvar(projeto);
}
}
Esse é o ProjetoDAO :
public class ProjetoDAO {
private Session sessao;
private Transaction transaction;
public void salvar(Projeto projeto)
{
EntityManagerFactory factory = Persistence.createEntityManagerFactory("bancogestao");
try{
EntityManager manager = factory.createEntityManager();
manager.getTransaction().begin();
manager.persist(projeto);
manager.getTransaction().commit();
}
catch(Exception e){
System.out.println("Erro ao salvar.");
}
finally{
factory.close();
}
}
}
ESTOU TENTANDO INSERIR O PROJETO NESSE BANCO (mysql):
create database bancogestao;
use bancogestao;
show tables;