Projeto com JSF não salva no BD MySQL

10 respostas
X

Eu tu tentando fazer um crud mais quando eu coloco pra salvar não salva...
Alguem pode dá uma olhada??

AlunoDAO:
package com.projeto.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.projeto.jdbc.*;
import com.projeto.view.*;

public class AlunoDAO {

	Connection connection;

	public AlunoDAO() {
		this.connection = new FabricaDeConexao().getConnection();
	}

	public boolean adicionarAluno(AlunoBean aluno) {

		String sql = "insert into cadastroaluno (matricula, nome, email, rg, fone, endereco, email_responsavel, diretor_turma)VALUES (?,?,?,?,?,?,?,?)";
		try {
			PreparedStatement stmt = this.connection.prepareStatement(sql);

			stmt.setInt(1, aluno.getMatricula());
			stmt.setString(2, aluno.getNome());
			stmt.setString(3, aluno.getEmail());
			stmt.setInt(4, aluno.getRg());
			stmt.setString(5, aluno.getFone());
			stmt.setString(6, aluno.getEndereco());
			stmt.setString(7, aluno.getEmail_responsavel());
			stmt.setString(8, aluno.getDiretor_turma());

			ResultSet rs = stmt.executeQuery();

			stmt.execute();

			// verifica se existe retorno na consulta
			if (rs.next()) {
				stmt.close();
				return true;
			} else {
				stmt.close();
				return false;
			}

		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
}
Fabrica de Conexao:
package com.projeto.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class FabricaDeConexao {
	public Connection getConnection() {
		System.out.println("Conectando ao Banco de Dados...");

		String stringDeConexao = "jdbc:mysql://localhost/PDT";
		String user = "root";
		String pass = "";

		try {
			return DriverManager.getConnection(stringDeConexao, user, pass);
		} catch (SQLException e) {
			throw new RuntimeException(e
					+ "\nNAO FOI POSSIVEL CONECTAR NO BANCO DE DADOS");
		}
	}

}
Bean:
package com.projeto.view;

import javax.faces.event.ActionEvent;

import com.projeto.dao.AlunoDAO;

public class AlunoBean extends AlunoDAO {
	String nome;
	int matricula; 
	String	email;
	int rg;
	String fone;
	String endereco;
	String nome_responsavel;
	String email_responsavel;
	String Diretor_turma;
	
	public int getMatricula() {
		return matricula;
	}

	public void setMatricula(int matricula) {
		this.matricula = matricula;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public int getRg() {
		return rg;
	}

	public void setRg(int rg) {
		this.rg = rg;
	}

	public String getFone() {
		return fone;
	}

	public void setFone(String fone) {
		this.fone = fone;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getNome_responsavel() {
		return nome_responsavel;
	}

	public void setNome_responsavel(String nome_responsavel) {
		this.nome_responsavel = nome_responsavel;
	}

	public String getEmail_responsavel() {
		return email_responsavel;
	}

	public void setEmail_responsavel(String email_responsavel) {
		this.email_responsavel = email_responsavel;
	}

	public String getDiretor_turma() {
		return Diretor_turma;
	}

	public void setDiretor_turma(String diretor_turma) {
		Diretor_turma = diretor_turma;
	}

	public String getTelefone_responsavel() {
		return telefone_responsavel;
	}

	public void setTelefone_responsavel(String telefone_responsavel) {
		this.telefone_responsavel = telefone_responsavel;
	}

	String telefone_responsavel; 

	public void enviar(ActionEvent event) {
		this.setNome(this.getNome().toUpperCase());
		}
	
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public AlunoBean() {
	}
}
JSF: //Não coloquei todos os campos do banco coloquei só MATRICULA, NOME E E-MAIL
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!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>Cadastro aluno</title>
		</head>
	<body>
		<f:view>
			<h:form>
				<h:outputLabel value="Matricula:"/>
				<h:inputText value="#{alunoBean.matricula}"/><br />
				<h:outputLabel value="Nome:"/>
				<h:inputText value="#{alunoBean.nome}"/><br />
				<h:outputLabel value="E-mail:"/>
				<h:inputText value="#{alunoBean.email}"/>
				<br/><h:commandButton value="Cadastrar"
				 actionListener="#{alunoBean.adicionarAluno}"/><br>
				</h:form>
		</f:view>
	</body>
</html>

Obrigado!

10 Respostas

Hebert_Coelho

Aparece alguma mensagem de erro?

X

Eu vi agora o erro:

javax.faces.event.MethodExpressionActionListener processAction SEVERE: Received 'org.apache.jasper.el.JspMethodNotFoundException' when invoking action listener '#{alunoBean.adicionarAluno}' for component 'j_id_jsp_177775844_8' 07/11/2011 13:47:48 javax.faces.event.MethodExpressionActionListener processAction SEVERE: org.apache.jasper.el.JspMethodNotFoundException: /cadastroAluno.jsp(20,9) '#{alunoBean.adicionarAluno}' Method not found: [email removido](javax.faces.event.ActionEvent) at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:71) at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99) at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:774) at javax.faces.component.UICommand.broadcast(UICommand.java:372) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) 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:291) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619)

R

cade a chamada do metodo no form? o Java nunca vai saber o que voce quer fazer se nao disser a ele o método a ser chamado passando o parametro.

Edit:

Cara o método não está sendo encontrado na sua classe. tenta trocar para #{alunoDAO.adicionarAluno}

X

rokdark:
cade a chamada do metodo no form? o Java nunca vai saber o que voce quer fazer se nao disser a ele o método a ser chamado passando o parametro.

Edit:

Cara o método não está sendo encontrado na sua classe. tenta trocar para #{alunoDAO.adicionarAluno}

Não basta chamar o metodo no action não? Como eu chamo o metodo form?

Agora deu o erro:

avax.faces.event.MethodExpressionActionListener processAction SEVERE: Received 'org.apache.jasper.el.JspPropertyNotFoundException' when invoking action listener '#{alunoDAO.adicionarAluno}' for component 'j_id_jsp_177775844_8' 07/11/2011 14:00:22 javax.faces.event.MethodExpressionActionListener processAction SEVERE: org.apache.jasper.el.JspPropertyNotFoundException: /cadastroAluno.jsp(20,9) '#{alunoDAO.adicionarAluno}' Target Unreachable, identifier 'alunoDAO' resolved to null at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:74) at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99) at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:774) at javax.faces.component.UICommand.broadcast(UICommand.java:372) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) 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:291) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619)

Abrigado pela atenção =D

A

cara,

da uma lida nesta apostilas, elas vao te ajudar bastante, vc ta confundido os conceitos de padrão de projeto.

t+

X

alissonvla:
cara,

da uma lida nesta apostilas, elas vao te ajudar bastante, vc ta confundido os conceitos de padrão de projeto.

t+

A K19 Usa JSF + JDBC? Eu tava estudando por uma apostila que só fala de JDBC no começo… ai eu fiz tudo blz na apostila sem problema mais ai quando fui colocar jDBC deu nisso… :S

Vlw!!

A

acho q nao,
mas as apostilas vão te dar uma base boa para vc desenvolver aplicações web e com isso provavelmente vai conseguir resolver seu problema.

t+

X

alissonvla:
acho q nao,
mas as apostilas vão te dar uma base boa para vc desenvolver aplicações web e com isso provavelmente vai conseguir resolver seu problema.

t+

BLZ. VLW!!

Hebert_Coelho

Outra coisa é, você está chamando o método do aluno DAO mas ele não está declarado como ManagedBean.

Por isso a mensagem de erro fala que não encontrou o Bean.

OBS.: Seu projeto ta com vários problemas de estrutura viu mano. Melhor dá uma lida em MVC ou vc vai ter muitos problemas lá na frente. Só uma dica.

X

jakefrog:
Outra coisa é, você está chamando o método do aluno DAO mas ele não está declarado como ManagedBean.

Por isso a mensagem de erro fala que não encontrou o Bean.

OBS.: Seu projeto ta com vários problemas de estrutura viu mano. Melhor dá uma lida em MVC ou vc vai ter muitos problemas lá na frente. Só uma dica.

Ok. Vou olhar!

Criado 7 de novembro de 2011
Ultima resposta 7 de nov. de 2011
Respostas 10
Participantes 4