Programação Java – JSP – Classes para implementação utilizando Facade

Abaixo estão os códigos de implementação do projeto utilizando Facade.

Exemplo de implementação de uma classe de conexão com o Banco de dados MySQL.

package aula;

import java.sql.*;

import java.util.*;

/** Classe que realiza conexão com o banco
de dados

Neste exemplo é mostrado para um conexão com o Banco de Dados
MySQL.

Pode-se passar o nome ou o IP para identificar o servidor.

*/

public class Conexao{

String jdbc=”jdbc:mysql://localhost/bdaula“;

private String usuario = “root”;

private String senha = “123”;

Statement st;

Connection conexao;

private String msg=””;

private String sql=null;

ResultSet rs=null;

/** Construtor default */

public Conexao() {

try{

Class.forName(“com.mysql.jdbc.Driver“);

this.conexao = DriverManager.getConnection(jdbc,usuario,senha);

this.st = this.conexao.createStatement();

this.msg=”Conexão estabelecida com exito !\n”;

}

catch(ClassNotFoundException e) {

this.msg=”Driver JDBC-ODBC não encontrado!.Verifique a classe do
Driver”;

getmsg();

}

catch(SQLException e) {

this.msg=”Problemas na conexao com a fonte de dados,verifique o SQL passado.”;

getmsg();

}

}

/** Método para imprimir no console */

public void getmsg(){

System.out.println(this.msg);

}

/**Método para retornar a variável
de menagem*/

public String getMsg(){

return this.msg;

}

public void fecharConexao()throws SQLException{

try{

this.st.close();

this.conexao.close();

}catch(SQLException e){

this.msg=”Não foi possível fechar a conexao”;

getmsg();

e.printStackTrace();

}

}

public Connection getConexao() {

return conexao;

}

}

1- Desenvolva uma página em JSP que utilize esta classe de conexão com o banco de dados, e ao final apresente o valor da variável de mensagem da classe de conexão.

2- Crie um banco de dados no MySQL chamado bdaula, contendo apenas uma tabela chamada usuário. Esta tabela devera conter os campos: login, senha e nome.
usuario(login,senha,nome)
create table usuario(
login varchar(12) not null,
senha varchar(12) not null,
nome varchar(12) not null,
primary key(login)
)

3-Alimente esta tabela com cinco registros.

4- Crie uma classe usuário em java, com os mesmo atributos definidos para a tabela usuário.
package aula;
public class Usuario {
private String nome;
private String login;
private String senha;

public Usuario() {
}

public Usuario(String nome,String login,String senha) {
this.nome = nome;
this.login = login;
this.senha = senha;
}

public String getLogin() {
return this.login;
}

public String getNome() {
return this.nome;
}

public String getSenha() {
return this.senha;
}

public void setLogin(String login) {
this.login = login;
}

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

public void setSenha(String senha) {
this.senha = senha;
}
}

5- Para a classe usuário,crie uma classe com o mesmo nome e sufixo BD, onde deverão ficar as instruções e SQL.

package aula;
import java.sql.*;
import java.util.*;

public class UsuarioBD {
private String sql=null;
private String msg=null;
private Conexao conexao;
private Usuario usuario;
private Vector vetUsuario;

/** Método construtor sem parametros */

public UsuarioBD() {
this.conexao=new Conexao();
}

public void msg(){
this.msg=this.msg+this.conexao.getMsg();
System.out.println(this.msg);
}

public String getMsg(){
this.msg=this.msg+this.conexao.getMsg();
return this.msg;
}

public boolean autenticaUsuario(Usuario usuario)throws
SQLException{

this.sql=“select * from usuario where login='” + usuario.getLogin() + “‘ and senha='” + usuario.getSenha() +”‘”;
try{
this.conexao.rs=this.conexao.st.executeQuery(this.sql);

if(this.conexao.rs.next())
return true;
else
return false;
}catch(SQLException e){
this.msg=”Nao foi possivel inserir o usuário ” + usuario.getLogin()
+ “.\nErro:” + e.getMessage();
return false;
}finally{
this.conexao.fecharConexao();
}

}

public Usuario getUsuario(Usuario
usuario
)throws SQLException{

this.sql =“select * from usuario where login='” + usuario.getLogin()
+”‘”;

try{
this.conexao.rs=this.conexao.st.executeQuery(this.sql);
if(this.conexao.rs.next()){
this.usuario = new Usuario(this.conexao.rs.getString(“nome“),this.conexao.rs.getString(“login“),this.conexao.rs.getString(“senha“));

return this.usuario;

}

}catch(SQLException e){

this.msg=”Nao foi possivel recuperar o usuário ” + usuario.getLogin()
+ “.\nErro:”+e.getMessage();

}

return this.usuario=null;

}

public Vector getUsuario()throws
SQLException
{

this.sql=“select * from usuario order by login”;

this.vetUsuario=new Vector();

try{

this.conexao.rs=this.conexao.st.executeQuery(this.sql);

while(this.conexao.rs.next()){

this.usuario = new Usuario(this.conexao.rs.getString(“nome”),this.conexao.rs.getString(“login”),this.conexao.rs.getString(“senha”));

this.vetUsuario.addElement(this.usuario);

}

}catch(SQLException e){

this.msg=”Nao foi possivel realizar a consulta.\nErro:”+e.getMessage();

getMsg();

}finally{

this.conexao.fecharConexao();

}

return this.vetUsuario;

}

public Vector getUsuarioINI(Usuario usuario)throws SQLException{

this.sql=”select * from usuario where nome like ‘” + usuario.getNome() + “%’“;

this.vetUsuario=new Vector();

try{

this.conexao.rs=this.conexao.st.executeQuery(this.sql);

while(this.conexao.rs.next()){

this.usuario = new Usuario(this.conexao.rs.getString(“NOME”),this.conexao.rs.getString(“LOGIN”),this.conexao.rs.getString(“SENHA”));

vetUsuario.add(this.usuario);

}

}catch(SQLException e){

this.msg=”Nao foi possivel realizar a consulta.\n Erro:”+e.getMessage()+”\n”;

getMsg();

}

return this.vetUsuario;

}

public boolean setUsuario(char operacao,Usuario
usuario
)throws SQLException{

String login = usuario.getLogin();

String senha = usuario.getSenha();

String nome = usuario.getNome();

switch(operacao){

case ‘I‘:

this.sql=”insert into usuario(nome,login,senha)values(‘”+nome+”‘,'”+login+”‘,'”+senha+”‘)”;

break;

case ‘U‘:

this.sql=“update usuario set senha='”+senha+”‘,nome='”+nome+”‘
where login='”+login+”‘”;

break;

case ‘D‘:

this.sql=“delete from usuario where login='”+login+”‘”;

break;

default:this.sql=””;

}

try {

this.conexao.st.executeUpdate(this.sql);

return true;

} catch (SQLException e) {

e.printStackTrace();

this.msg=”Erro=”+e.getMessage();

return false;

}

}

//Exemplo de uma chama de Stored Procedure

public boolean setUsuario(String
operacao
,Usuario usuario)throws
SQLException
{

String login = usuario.getLogin();

String senha = usuario.getSenha();

String nome = usuario.getNome();

this.sql=”execute procedure sp_usuario(‘”+ operacao +”‘,'”+
login +”‘,'”+ senha +”‘,'” + nome + “‘);”;

try{

this.conexao.st.executeUpdate(this.sql);

this.msg=”O usuario “+login+” foi incluido no sistema.”;

return true;

}catch(Exception e){

this.msg=”Não foi possível inserir o usuario ” + login;

return false;

}finally{

this.conexao.fecharConexao();

}

}

}

8- Construa a classe Fachada de acordo com o código abaixo.

package aula;

import java.sql.*;
import java.util.Vector;

public class Fachada {
private String msg=null;
private UsuarioBD ubd;

/** Construtor padrao default*/
public Fachada() {
}

public void getmsg(){
System.out.print(this.msg);
}

public String getMsg(){return this.msg;}

//****************operação com os objetos Usuario***************************
public boolean autenticaUsuario(Usuario usuario)throws SQLException{
this.ubd= new UsuarioBD();
if(ubd.autenticaUsuario(usuario))
return true;
else
return false;
}

public boolean setUsuario(char operacao,Usuario usuario)throws SQLException{
this.ubd= new UsuarioBD();
if(ubd.setUsuario(operacao,usuario))
return true;
else
return false;
}

/**Retorna um usuario que tenho o login correpindente.
* @param login
* @return Usuario u
*/

public Usuario getUsuario(Usuario usuario)throws SQLException{
this.ubd= new UsuarioBD();
return this.ubd.getUsuario(usuario);
}

/**Retorna o conjunto total de usuario cadastrado na base de dados.
*Para recurar qualquer valor bastautilizar os metodos get e set da classe
*básica.
* @param Sem parametro de entrada
* @return Um vetor de objetos de Usuario.
*/

public Vector getUsuario()throws SQLException
{
this.ubd= new UsuarioBD();
return this.ubd.getUsuario();
}

public Vector getUsuarioINI(Usuario usuario)throws SQLException{
this.ubd= new UsuarioBD();
return this.ubd.getUsuarioINI(usuario);
}
}

7- Desenvolva uma página de autenticação utilizando as classes mostadas, de acordo com o mostrado no padrão.

Um comentário em “Programação Java – JSP – Classes para implementação utilizando Facade

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *