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:
- Importe o .jar do DB2 para o seu projeto. Se não sabe como fazer isso, leia o post: Criando um Dynamic web project e JEE + Conexão BD – Eclipse (aqui é com o myqsql, mais será o mesmo processo para DB2, exceto que DB2 temos dois arquivos .jars, vejam quais sao eles nesse post: Série Db2: Conexão DB2 + Java – Eclipse)
Passo 2
Nessa parte aqui vamos criar o DAO,o Servlet, JavaBeans e estabelecer a conexao com o BD2.
Estabelecendo a conexao
-
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()); }}}
-
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; }}
-
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.
-
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; } }}
- 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
. -
Belo post Lopes!
Mais uma vez, parabéns!!
São dicas valiosas!!
Valeu muito bom, são ótimas dicas vai me ajudar muito. Sou novato na área.