Aplicação em JSP e Javabeans utilizando Banco de Dados

download Aplicação em JSP e Javabeans utilizando Banco de Dados

of 25

Transcript of Aplicação em JSP e Javabeans utilizando Banco de Dados

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    1/25

    Aplicao em JSP e Javabeans utilizando Banco deDados

    Publicado porFlavio R. Bianchiem 02/10/2011 - 312.997 visualizaes

    comentrios: 39

    Para saber os conceitos bsicos de JSP, recomendamosesta leituraantes de ler este tutorial.

    Tutorial: Aplicao em JSP e Javabeans utilizando Bando de Dados.Autor: Rodrigo Afonso Perenha.

    Bom, vamos desenvolver um aplicao com JSP e Javabeans utilizando o Bando de Dados MySQL,

    com as opes de cadastrar, alterar, consultar, excluir e listar passo a passo. Mas antes vamos passar

    por alguns conceitos bsicos e importantes.

    1.Escolhendo e configurando o Bando de Dados

    Primeiramente voc precisa escolher o banco de dados e como exemplo vamos utilizar o MySQL.

    Caso voc no o tenha, faa o download no sitehttp://dev.mysql.com/downloads, muito simples

    de instalar e de usar.

    Aps instalado, para executar o MySQL utilize o executvel WinMySQLAdmin.exe localizado na

    pasta C:\mysql\bin, em seguida aparecer o icone de semaforo na barra de tarefas prximo ao

    relgio.Aps instalado e funcionando necessrio configura-lo, para isso, digite para Host Name

    ?localhost?e para User Name e Password ?root?, para rodar na mquina local.

    Em seguida necessrio criar a base de dados e a tabela, voc pode utilizar qualquer programa de

    manipulao, vamos utilizar o MySQL Control Center, disponvel tambm no site do Mysql

    http://dev.mysql.com/downloads/other/mysqlcc.html.

    Como exemplo crie uma base de dados com o nome ?teste? e em seguida vamos criar uma tabela

    chamada pessoa com as colunas nome, idade e sexo.

    Agora estamos prontos pra utilizar nossa base de dados.

    2.Configurando o servidor para rodar o JSP

    JSP (Java Server Pages) so cdigos que quando combinados com tags HTML produzem pginas

    dinmicas, que so processadas pelo servidor.

    Como servidor, podemos utilizar o Jakarta-Tomcat que pode ser encontrado no site

    http://jakarta.apache.org/tomcat/ou o Jboss com Tomcat encontrado no site

    http://www.jboss.org/downloads/index . Caso no tiver, basta instal-lo.

    Ento, o primero passo configurar o servidor para podermos executar essas pginas dinmicas.

    Caso tenha escolhido o Tomcat, necessrio inicia-lo executando o arquivo C:\Tomcat

    5.0\bin\startup.bat, onde abrir uma janela mostrando a inicializao, demora um pouco, mas depois

    voc j pode executar seus arquivos JSP, para isso grave seus arquivos JSP dentro do caminho

    C:\Tomcat 5.0\webapps\ROOT\ , e execute os mesmos atravs do browser digitando o caminhohttp://localhost:8080/ , por exemplo, caso crie um arquivo teste.jsp, o mesmo seria gravado no

    http://javafree.uol.com.br/artigo/10956/Aplicacao-em-JSP-e-Javabeans-utilizando-Banco-de-Dados.htmlhttp://javafree.uol.com.br/artigo/10956/Aplicacao-em-JSP-e-Javabeans-utilizando-Banco-de-Dados.htmlhttp://javafree.uol.com.br/viewprofile.jbb?u=1847http://javafree.uol.com.br/viewprofile.jbb?u=1847http://javafree.uol.com.br/viewprofile.jbb?u=1847http://javafree.uol.com.br/topic-10956-Aplicacao-em-JSP-e-Javabeans-utilizando-Banco-de-Dados.htmlhttp://javafree.uol.com.br/topic-10956-Aplicacao-em-JSP-e-Javabeans-utilizando-Banco-de-Dados.htmlhttp://javafree.uol.com.br/artigo/868717/JSP-Java-Server-Pages.htmlhttp://javafree.uol.com.br/artigo/868717/JSP-Java-Server-Pages.htmlhttp://javafree.uol.com.br/artigo/868717/JSP-Java-Server-Pages.htmlhttp://dev.mysql.com/downloadshttp://dev.mysql.com/downloadshttp://dev.mysql.com/downloadshttp://dev.mysql.com/downloads/other/mysqlcc.htmlhttp://dev.mysql.com/downloads/other/mysqlcc.htmlhttp://jakarta.apache.org/tomcat/http://www.jboss.org/downloads/indexhttp://www.jboss.org/downloads/indexhttp://www.jboss.org/downloads/indexhttp://jakarta.apache.org/tomcat/http://dev.mysql.com/downloads/other/mysqlcc.htmlhttp://dev.mysql.com/downloadshttp://javafree.uol.com.br/artigo/868717/JSP-Java-Server-Pages.htmlhttp://javafree.uol.com.br/topic-10956-Aplicacao-em-JSP-e-Javabeans-utilizando-Banco-de-Dados.htmlhttp://javafree.uol.com.br/viewprofile.jbb?u=1847http://javafree.uol.com.br/artigo/10956/Aplicacao-em-JSP-e-Javabeans-utilizando-Banco-de-Dados.htmlhttp://javafree.uol.com.br/artigo/10956/Aplicacao-em-JSP-e-Javabeans-utilizando-Banco-de-Dados.html
  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    2/25

    caminho C:\Tomcat 5.0\webapps\ROOT\teste.jsp e depois seria executado no browser atravs do

    endereo http://localhost:8080/teste.jsp, e quando quiser encerrar o Tomcat execute o arquivo

    C:\Tomcat 5.0\bin\shutdown.bat.

    Caso tenha escolhido o Jboss, bem parecido com o Tomcat, pois o Jboss tem o Tomcat integrado e

    da mesma forma necessrio inicializar o servidor atravs do arquivo C:\jboss-3.0.8_tomcat-

    4.1.24\bin\run.bat, ento cria uma pasta dentro do caminho C:\jboss-3.0.8_tomcat-4.1.24\server\default\deploy\ com a extenso .war. Por exemplo, caso queira criar uma pasta teste,

    ficaria da seguinte forma, C:\jboss-3.0.8_tomcat-4.1.24\server\default\deploy\teste.war e aqui

    dentro ficaro nossos arquivos JSP.

    Vamos utilizar o Jboss para nossa implementao e vamos fazer um exemplo simples para testar o

    servidor, crie a pasta teste.war e em seguida crie uma pgina simples e salve dentro da pasta

    teste.war.

    1. 2. 3. 4.5. 6. Teste JSP7. 8.9. 10.11.12.

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    3/25

    3. Acessando o MySQL atravs do JSP utilizando o servidor Jboss com Tomcat integrado.

    Agora vamos testar a conexo com o Banco MySQL atravs do JSP. Inicialmente precisamos

    baixar o driver do MySQL, que um arquivo .jar disponvel no site

    http://dev.mysql.com/downloads/e copia-lo na pasta C:\jboss-3.0.8_tomcat-4.1.24\server\default\lib.

    Vamos desenvolver uma pgina pra testar a conexo com o banco MySQL e salvar com o nome

    testeConexao.jsp na pasta C:\jboss-3.0.8_tomcat-4.1.24\server\default\deploy\teste.war criada

    anteriormente.

    1. 2.

    3.4. 5. Teste de Conexo6. 7.8. 9.10.25.26.

    http://javafree.uol.com.br/artigo/10956/%20http:/dev.mysql.com/downloads/http://javafree.uol.com.br/artigo/10956/%20http:/dev.mysql.com/downloads/
  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    4/25

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    5/25

    package testeBean;

    public c lass TesteBean {

    String txt = "";

    public void setTexto(String texto){

    txt = texto;

    }

    public String getTexto(){

    return txt;

    }

    }

    Ento dentro da pasta teste.war criamos uma pasta chamada WEB-INF, que onde sero

    procurados todos os JavaBenas e dentro da pasta WEB-INF ser criada a pasta classes e a pasta lib.

    Na pasta classes poderemos gravar os arquivos com extenso .class e na pasta lib podemos gravaros arquivos com extenso .jar. Sempre salve os Javabeans dentro de pacotes para evitar transtornos.

    Vamos criar um arquivo .jar desse exemplo e salva-la como testeBean.jar na pasta lib, ficando da

    seguitne maneira C:\jboss-3.0.8_tomcat-4.1.24\server\default\deploy\teste.war\WEB-

    INF\lib\testeBean.jar ou caso preferir pode gravar o pacote testeBean todo dentro da pasta classes

    C:\jboss-3.0.8_tomcat-4.1.24\server\default\deploy\teste.war\WEB-

    INF\classes\testeBean\TesteBean.class.

    Agora dentro da pasta teste.war iremos criar o arquivo JSP que ir chamar o Javabeans. Salve o

    mesmo como testeBean.jsp.

    1. 2. 3. 4.5. 6. 7. Teste Jsp8. 9.10.11.Teste JSP12.

    A mensagem teste :13.14.

    15.16.17.
  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    6/25

    Teste Jsp

    Teste JSP

    A mensagem teste :

    O comando cria um objeto ?testeObj? da classe TesteBean. O comando atravs do objeto ?testeObj?

    utiliza o setProperty para chamar o mtodo setTexto, que associa o property=?texto? ao setProperty

    e chama o mtodo setTexto do Javabeans passando como parametro o valor ?Testando...?. Omesmo ocorre para o comando que chama o mtodo getTexto, imprimindo a varivel ?txt? do

    Javabeans na tela.

    Voc tambm pode utilizar o objeto criado para chamar os mtodos do Javabeans sem utilizar

    getProperty, colocando o cdigo JSP entre , por exemplo poderiamos chamar o mtodo getTexto da

    seguinte forma , utilizando o sinal de = para imprimir na tela, ou mandar imprimir utilizando o

    cdigo , j que o mtodo getTexto() retorna uma string.

    Ento inicia o servidor Jboss e executa no browser o endereo

    http://localhost:8080/teste/testeBean.jsp. Caso imprimir a mensagem ?Testando...? na tela, a

    chamada ao Javabeans ocorreu corretametne.

    5. Utilizando JSP e Javabeans para acessar o MySQL

    Agora vamos aperfeioar nosso exemplo de conexo com banco de dados, fazendo com que o

    Javabeans faa a conexo e o JSP acesse o resultado atravs do mesmo.

    Primeiramente vamos criar um JavaBeans para fazer a conexo, bem parecido com o JSP que

    fizemos anteriormente.

    1. package conexao;2.3. import java.sql.*;4.5. public class Conexao {6.7. public Connection con;8. public Statement stm;9. private String sit = "";10.11.

    public Conexao() {12.

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    7/25

    13.try {14.15.Class.forName("org.gjt.mm.mysql.Driver");16.con = DriverManager.getConnection("jdbc:mysql://localhost:3306/teste","root","root");17.stm = con.createStatement();18.19.sit = "Conexo efetuada com sucesso";20.21.22.} catch (Exception e) {23.sit = "no foi possvel conectar ao banco" + e.getMessage();24.}25.}26.27.public String getSituacao(){28.return sit;29.}30.}

    package conexao;

    import java.sql.*;

    public c lass Conexao {

    public Connection con;

    public Statement stm;

    private String sit = "";

    public Conexao() {

    try {

    Class.forName("org.gjt.mm.mysql.Driver");

    Ento da mesma forma mostrada anteriormente salve o Javabeans como Conexao.jar dentro da

    pasta teste.war\WEB-INF\lib e crie um arquivo JSP e salve como conexao.jsp dentro da pasta

    teste.war.

    1. 2. 3.

    4.5. 6. 7. Teste Conexo8. 9.

    10.

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    8/25

    11.Teste Conexo12.

    A situao do banco :13.14.

    15.16.
  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    9/25

    11.private int idade = 0;12.private String sexo = null;13.14.public Conexao() {15.16.try {17.18.Class.forName("org.gjt.mm.mysql.Driver");19.con =20.DriverManager.getConnection(21."jdbc:mysql://localhost:3306/teste",22."root",23."root");24.stm = con.createStatement();25.26.} catch (Exception e) {27.System.out.println("no foi possvel conectar ao banco" + e.getMessage());28.}29.}30.31.public void setNome(String nome){32.this.nome = nome;33.}34.35.public void setIdade(int idade){36.this.idade = idade;37.}38.39.public void setSexo(String sexo){40.this.sexo = sexo;41.}42.43.public String getNome(){44.return nome;45.}46.47.public int getIdade(){48.

    return idade;49.}

    50.51.public String getSexo(){52.return sexo;53.}54.55.public void inserirDados(){56.57.try {58.String query = "insert into pessoa(nome,idade,sexo)

    values(\""+nome+"\","+idade+",\""+sexo+"\")";59.stm.executeUpdate(query);

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    10/25

    60.61.}catch (SQLException e){System.out.println("Erro na insero:" + e.getMessage());}62.63.}64.65.public boolean alterarDados(){66.67.boolean testa = false;68.69.try {70.String query = "update pessoa "+71."set idade = " + idade + ", "+72."sexo = \"" + sexo + "\" " +73."where nome = \"" + nome + "\"";74.75.int linhas = stm.executeUpdate(query);76.77.if (linhas > 0)78.testa = true;79.else80.testa = false;81.82.}catch (SQLException e){System.out.println("Erro na insero:" + e.getMessage());}83.84.return testa;85.}86.87.public boolean excluirDados(){88.89.boolean testa = false;90.91.try {92.String query = "delete from pessoa where nome='" + nome+"'";93.int linhas = stm.executeUpdate(query);94.95.if (linhas > 0)96.testa = true;97.

    else98.testa = false;

    99.100. }catch (SQLException e){System.out.println("Erro na excluso:" +

    e.getMessage());}

    101.102. return testa;103. }104.105. public boolean consultarDados(){106.107. boolean testa = false;108.

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    11/25

    109. try {110. String query = "select * from pessoa where nome='" + nome+"'";111. res = stm.executeQuery(query);112.113. if (res.next()){testa = true;}114. else{testa = false;}115.116. }catch (SQLException e){System.out.println("Erro na insero:" + e.getMessage());}117.118. return testa;119. }120.121. public void setConsulta() {122.123. try {124. res = stm.executeQuery("select * from pessoa");125. }126. catch (SQLException e){127. e.printStackTrace();128. }129.130. }131.132. public ResultSet getResultado() {133. return res;134. }135. }

    package conexao;

    import java.sql.*;

    public c lass Conexao {

    public Connection con;

    public Statement stm;

    public ResultSet res = null;

    private String nome = null;

    private int idade = 0;

    private String sexo = null;

    public Conexao() {

    Onde o mtodo construtor ser responsvel pela conexo ao banco, ou seja, toda vez que for

    instanciado um objeto dessa classe, o construtor ser chamado primeiro e o banco ser conectado.

    Foram criadas trs variveis privadas nome, idade e sexo, que sero acessadas atravs dos mtodos

    get e set.

    O mtodo inserirDados() responsvel pela insero no banco, onde ser passado como valores as

    trs variveis privadas.O mtodo alterarDados() responsvel por atualizar os dados levando em considerao a varivel

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    12/25

    nome, testando se foi encontrado algum registro, retornando assim true ou false.

    O mtodo excluirDados(), da mesma forma que o alterarDados(), exclui os dados levando em

    considerao a varivel nome, testando se encontrou algum registro.

    O mtodo consultaDados() apenas consulta os dados do banco, tambm testando se encontrou

    algum registro.

    O mtodo setConsulta() executa uma consulta comum. E o mtodo getResultado() retorna o objetoResultSet contendo todos os registros do banco.

    pessoa.jsp

    Agora criaremos um arquivo JSP principal, contendo os campos e botes para insero, consulta,

    alterao e excluso. Chamaremos de pessoa.jsp.

    1. 2.

    3.4. 5. 6. Tabela Pessoa7.8.9. 10.11.function enviar(par){12.13.if (par == 'cadastrar'){14.15.if (document.cadastro.nomeField.value == ''){16.document.cadastro.statusField.value = 'Preencha o campo nome';17.}else if (document.cadastro.idadeField.value == ''){18.document.cadastro.statusField.value = 'Preencha o campo idade';19.}else if (document.cadastro.sexoField.value == ''){20.document.cadastro.statusField.value = 'Escolha o sexo da pessoa';21.

    }else {22.document.cadastro.action='cadastrar.jsp';

    23.document.cadastro.submit();24.}25.26.} else if (par == 'consultar'){27.28.if (document.cadastro.nomeField.value == ''){29.document.cadastro.statusField.value = 'Preencha o campo nome';30.}else {31.document.cadastro.action='consultar.jsp';32.document.cadastro.submit();33.}

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    13/25

    34.35.} else if (par == 'alterar'){36.37.if (document.cadastro.nomeField.value == ''){38.document.cadastro.statusField.value = 'Preencha o campo nome';39.}else if (document.cadastro.idadeField.value == ''){40.document.cadastro.statusField.value = 'Preencha o campo idade';41.}else if (document.cadastro.sexoField.value == ''){42.document.cadastro.statusField.value = 'Escolha o sexo da pessoa';43.}else {44.document.cadastro.action='alterar.jsp';45.document.cadastro.submit();46.}47.} else if (par == 'excluir'){48.49.if (document.cadastro.nomeField.value == ''){50.document.cadastro.statusField.value = 'Preencha o campo nome';51.}else {52.document.cadastro.action='excluir.jsp';53.document.cadastro.submit();54.}55.} else if (par == 'listar'){56.document.cadastro.action='listar.jsp';57.document.cadastro.submit();58.}59.}60.61.62.63.64.65.70.71.

    72.

    73.79.80.81.82.83.

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    14/25

    84.85.

    Cadastro

    pessoa

    86.87.88.89.

    Nome :90.

    91.

    Idade :92.

    93.Sexo:94.95.

    96.97.98.

    99.100. 101. 102.

    103. 104. 105. 106. 107. 108.

    109.

    Status:110.

    111.

    112. 113. 114. 115. 116.

    117.

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    15/25

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    16/25

    18.19.Nome20.21.22.Idade23.24.25.Sexo26.27.28.29.30.47.48.49.50.51.

    52.

    53.54.55.56.57.58.

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    17/25

    64.%>65.66.

    67.

    68.69.

    70.

    Status:71.

    72.

    73.74.75.
  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    18/25

    Ento quando pressionamos o boto consultar, ser chamado a pgina consultar.jsp, onde ser

    necessrio que o campo nome esteja preenchido.

    1. Consulta2. 3. 4.5. 6. 7. 22.23.24.

    Consulta

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    19/25

    Aqui ser recuperado o contedo do campo nome e atribuido varivel nome atravs do mtodo

    setNome() no Javabeans. Ento chamado o mtodo consultarDados(), que do tipo booleano,

    consultando o registro que contm o nome e verificando se o mesmo existe, retornando true ou

    false.

    Caso exista, ento chamado o mtodo getResultado() para recuperar as informaes do registro e

    passa-las como parametros para pessoa.jsp atravs das variveis nome, idade, sexo e status com amensagem ?Consulta efetuada com sucesso?, atravs do response.sendRedirect, para serem

    mostradas na tela de pessoa.jsp.

    Caso no exista, ser passada apenas a varivel status com a mensagem ?Registro no encontrado?.

    alterar.jsp

    A pgina alterar.jsp normalmente chamada aps efetuada a consulta de algum nome, onde todos

    os campos precisam estar preenchidos.

    1. 2.

    3. 4. 5. 6. Alterar7. 8. 9.10.11.12.13.

    14.

    15.

    16.

    Tabela Pessoa

    17.

    18.19.20.21.Nome22.23.24.Idade25.26.27.Sexo28.

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    20/25

    29.30.31.32.44.45.46.47.48.49.50.51.52.53.54.55.64.

    65.

    66.67.

    68.

    Status:69.

    70.

    71.72.73.
  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    21/25

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    22/25

    19.20.21.Idade22.23.24.Sexo25.26.27.28.29.41.42.43.44.45.46.47.48.49.50.51.52.63.64.

    65.

    66.

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    23/25

    67.

    68.

    Status:69.

    70.

    71.72.73.
  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    24/25

  • 7/31/2019 Aplicao em JSP e Javabeans utilizando Banco de Dados

    25/25