Scarpah600 / JavaWeb

0 stars 0 forks source link

CRIANDO LOGIN JSF #6

Open Scarpah600 opened 5 years ago

Scarpah600 commented 5 years ago

Passo 1 Crie um schema e uma tabela no mysql com o nome que achar conveniente, aqui chamamos de livraria (schema) e clientes (tabela).

Os campos para tabela foram:

id: Integer autoincrement

nome: varchar

email: varchar

Passo 2 Crie um projeto chamado CadCliJSF e escolha o framework JSF. Se você tem alguma dúvida, veja o primeiro artigo da série.

Vamos Criar a classe de conexão com banco de dados. Para isso crie um new package: br.com.camilo.util e coloque a classe nesse package.

Chamamos aqui de ConnectionFactory

package br.com.integrator.util;

import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; import java.sql.Connection; import javax.naming.InitialContext; import javax.sql.DataSource;

public class ConnectionFactory {

public static Connection getConnection() throws Exception{
  try{

     Class.forName("com.mysql.jdbc.Driver");
        return DriverManager.getConnection("jdbc:mysql://localhost/livraria", "camilo", "123");
  } 

  catch(Exception e){
        throw new Exception(e.getMessage());
    }
}   
public static void closeConnection(Connection conn, Statement stmt, ResultSet rs)throws Exception{
    close(conn,stmt,rs);
}

public static void closeConnection(Connection conn, Statement stmt)throws Exception{
    close(conn,stmt,null);
}

public static void closeConnection(Connection conn)throws Exception{
    close(conn,null,null);
}

private static void close(Connection conn, Statement stmt, ResultSet rs) throws Exception{
    try{
        if(rs!=null) rs.close();
        if(stmt!=null)stmt.close();
        if(conn!=null)conn.close();
    }catch(Exception e){
        throw new Exception(e.getMessage());
    }
}

} Passo 3: cliente.java Crie agora o JavaBeans chamado cliente dentro do package br.com.cliente.

package br.com.cliente;

/*

Agora vamos criar uma interface DAO.java que possui os métodos de ação com o DB. Nesse caso, teremos apenas o salvar. Abaixo, o code da interface.

package br.com.integrator.dao;

import br.com.cliente.Cliente; import java.util.List;

/*

} Passo 5 Vamos criar a classe que implementa os métodos da interface DAO. Observe que assim fica mais fácil a manutenção e o reuso de código também.

Portanto, no package br.com.camilo.dao, crie uma classe que implementa os a interface dao.java. Aqui chamados de ClienteDAOImp. Veja o code:

package br.com.integrator.dao; import br.com.cliente.Cliente; import br.com.integrator.util.ConnectionFactory; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException;

public class ClienteDAOImp implements DAO { private Connection conn;

 /**
 * construtor que se conecta ao banco de dados
 * @throws java.lang.Exception se não houver conexão
 */
public ClienteDAOImp( ) throws Exception{
    try {
        this.conn = ConnectionFactory.getConnection( );

    } catch( Exception e ) {
        throw new Exception( "Erro: " +
                "\n" + e.getMessage( ) );
    }  }
 /**
 * Método que insere dados na tabela Clientes
 *  * @throws java.lang.Exception se não conseguir inserir
 */ 
public void salvar(Cliente cliente)  throws Exception{
    PreparedStatement ps = null;
    Connection conn = null;
    if (cliente == null)throw new   Exception("O valor passado não pode ser nulo");

    try {
        String SQL = "INSERT INTO cliente (nome, email) "+
                     "values (?, ?)";
        conn = this.conn;
        ps = conn.prepareStatement(SQL);
        ps.setString(1, cliente.getNome());
        ps.setString(2, cliente.getEmail( ));          

        ps.executeUpdate( );

    } catch (SQLException sqle) {
        throw new
                Exception("Erro ao inserir dados "+ sqle);
    } finally {
        ConnectionFactory.closeConnection(conn, ps);

    }    }

Passo 6 Crie um package br.com.Controler e crie uma classe chamada CliControler.java. Esta classe vai executar as ações com base no que foi solicitado pelo usuário. Se este clicar em salvar, o controlador vai chamar o método salvar da interface dao.java implementado pela classe CliDAOimp.

package br.com.Controler;

import br.com.cliente.Cliente; import br.com.integrator.dao.ClienteDAOImp; import br.com.integrator.dao.DAO;

/*

Agora altere o arquivo formAutor.jsp conforme o code a seguir. Adicione o code abaixo entre

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<%@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">

Agora altere o arquivo menu.jsp:

para o arquivo forwardToJSF.jsp, deixei assim: <jsp:forward page=”menu.jsf”/> para o arquivo cancelado.jsp, deixe conforme a imagem abaixo:

Agora, vamos configurar o arquivo face-web.xml. Portanto, deixe assim: