Série DB2 IBM:JEE + DB2

olá pessoal, chegamos a ultima série DB2, hoje veremos como fazer uma simples aplicação JEE e gravar as informações através de um formulário no DB2. É importante ler “posts recomendados” em caso de dúvidas de algo que nao for explicado nesse post.

Para quem está iniciando em JEE e tem curiosidade em aprender a usar outro DB, pode ser uma boa oportunidade. Ahh, nao posso esquecer, algumas explicações estão dentro dos comentários. E o objetivo deste post é auxiliar quem dar dano os primeiros pasos na plataforma JEE.

Lets go…

Posts Recomendados

Série 1: Instalando/Config – Windows

Série 2: Instalando/Config – Linux

Série Db2: Conexão DB2 + Java – Eclipse

Criando um Dynamic web project

JEE + Conexão BD – Eclipse

Iniciando…

  • Primeiro passo é criar um Dynamic Web Project(se nao sabe veja no post recomendado acima)
  • Uma vez criado o projeto, crie uma pagina .jsp chamada de index. Se seguir o modo padrão do Eclipse vc deve ter uma pasta chamada WebContent na estrutura do projeto JEE.
  • Agora vamos criar um formulario que vai cadastrar um novo usuario no sistema. Para isso digite o codigo abaixo:

Nome: Usuario: Senha:

Passo 2

Nessa parte aqui vamos criar o DAO,o Servlet, JavaBeans e estabelecer a conexao com o BD2.

Estabelecendo a conexao

  1. para estabelecer a conexao, precisamos criar uma class Java. Para isso crie um um package chamado “br.com.conexao” e a classe conforme abaixo:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class ConexaoFactory {
    
    public static Connection getConexao() throws Exception{
    try{
    Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
    System.out.println("conectando db2");
    Connection c = DriverManager.getConnection("jdbc:db2://localhost:50000/USUARIO","db2admin", "123");
    //informei o database apos a porta
    System.out.println("that's right");
    return c;
    }catch (NoClassDefFoundError e) {
    throw new SQLException(e.getMessage());
    }}}
  1. Criando o JavaBean, crie um package br.com.bean e nesse pacote crie uma classe chamada de Funcionario conforme abaixo:

    package br.com.bean;
    
    public class Funcionario {
    private int id;
    private String nome;
    private String usuario;
    private String senha;
    
    public Funcionario(int id, String nome, String usuario, String senha) {
    super();
    this.id = id;
    this.nome = nome;
    this.usuario = usuario;
    this.senha = senha;
    }
    
    public Funcionario() {
    super();
    	}
    
    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 getUsuario() {
    return usuario;
    }
    public void setUsuario(String usuario) {
    this.usuario = usuario;
    }
    public String getSenha() {
    return senha;
    }
    public void setSenha(String senha) {
    this.senha = senha;
    }}
    1. Seu JavaBean representa a sua table lá no BD, observe que eh a tabela que temos no BD, alias que vamos criar mais lá na frente.

    2. Precisamos criar uma classe que implementa a interface DAO, que terá os codigos sql Crie uma classe conforme abaixo:(nao se preocupe, lá na frente vamos criar a interface)

       package br.com.dao;
      
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.util.ArrayList;
      import java.util.List;
      
      import br.com.bean.Funcionario;
      import br.com.conexao.ConexaoFactory;
      
      public class FuncionarioDAO implements DAO {
      
      private Connection conn=null;
      
      public FuncionarioDAO() throws Exception {
      //estabelecendo a conexao quando o construtor rodar
      conn = ConexaoFactory.getConexao();
      }
      
      //o metodo que recebe um objeto para acessar o JavaBean
      public void salvar(Funcionario funcionario) throws Exception{
      Connection con;
      try{
      String sql = "insert into CAMILO.funcionario (nome,usuario,senha)" + "values(?,?,?)";
      con = conn;
      //usando PreparedStatement para evitar SQL Injection
      PreparedStatement ps = con.prepareStatement(sql);
      ps.setString(1, funcionario.getNome());//acessando o JavaBean para obter o nome
      ps.setString(2, funcionario.getUsuario());
      ps.setString(3, funcionario.getSenha());
      ps.execute();//executa o comando sql
      //isso sai no prompt somente para eu estar certo que está tudo bem
      System.out.println("funcionário cadastrado com sucesso");
      }catch (Exception e) {
      }finally{
      conn.close();//fechando a conexao
      }}}

    • Para isso crie uma interface conforme abaixo e chame ela de DAO. (nao esqueça de criar o package)
    package br.com.dao;
    
    import br.com.bean.Funcionario;
    
    public interface DAO {
    
    public abstract void salvar(Funcionario funcionario) throws Exception;
    
    }
    }}
    1. Crie um Servlet que tenha apenas o método service e dentro do metodo service, implemten o código a seguir:

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    String nome = request.getParameter("nome");
    String senha = request.getParameter("senha");
    String usuario = request.getParameter("usuario");
    Funcionario funcionario = new Funcionario();
    funcionario.setNome(nome);
    funcionario.setSenha(senha);
    funcionario.setUsuario(usuario);
    
    try {
    FuncionarioDAO fdao = new FuncionarioDAO();
    fdao.salvar(funcionario);
    //pessima pratica isso aqui misturar servlet + html, mas nao vem ao caso agora
    
    out.println("");
    out.println("Cadastro realizado com sucesso");
    out.println("");
    } catch (Exception e) {
    throw new ServletException(e);
    
    }	}
    • Vamos testar o que ja foi feito ate aqui, portanto clique com o botao direito em cima do projeto e escolha ==> Run AS ==> Run on Server. E aguarde a pagina index.jsp ser carregada.

    Criando Table DB2

    Precisamos criar uma tabela, portanto crie uma tabela conforme abaixo e nao esqueça de dar permissao para o usuario db2admin poder manipular esta tabela. Se nao sabe como veja nesse post como fazer:Série Db2: Conexão DB2 + Java – Eclipse

    Testando Aplicacao com BD2

    Para testar aplicação eh simples, clique no projeto e depois aperte ctrl + F11, escolha o servidor de aplicação e clique em finish. (se preferir va em Run As ==> Run on server)

    • Voce agora deve ter a página index.jsp conforme a imagem a seguir:

    • Cadastre um usuario conforme abaixo:

    • Apos clicar em cadastrar vc deve obter a tela conforme a seguir:

    Preste atenção no prompt. Temos os println() apenas como informação, isso nao vai para o browser, até pq nao faria sentindo se fosse.

    Pessoal, espero que tenham gostado dessa série DB2, o objetivo era apresentar o Banco de Dados da IBM e sairmos de usar “feijão com arroz” quando se fala em banco de dados(mysql, postgre etc). Espero tenham gostando do novo endereço do blog.

    Abraco, e até o próximo post…

    Não esquecam de votar em nosso blog no

    Top30 Brasil - Vote neste site!.

2 comentários em “Série DB2 IBM:JEE + DB2”

Deixe um comentário

O seu endereço de e-mail não será publicado.