JSP

Document Sample
JSP Powered By Docstoc
					LP IV

Professora Lucélia

                                JSP - Conexão com banco de dados MySQL


        A linguagem Java possui classes que permitem a conexão com banco de dados. Essas classes fazem
parte do pacote JDBC (Java Database Connectivity), que é uma API (Aplication Program Interface) que
permite a comunicação com diversos bancos de dados. Ele é instalado em conjunto com o JDK, não é
necessário fazer nenhuma instalação adicional para manipular o banco de dados em Java.
        Existem algumas maneiras de fazer a ligação entre o JDBC e o banco de dados. A mais simples é
estabelecer uma ponte entre o JDBC e o ODBC do Windows. Outra maneira é utilizar uma conexão através
de API nativa. Esta alternativa é mais veloz, mas depende de uma arquitetura proprietária.
        A função do JDBC é disponibilizar um recurso no qual seja possível estabelecer uma conexão com um
banco de dados e nele executar comandos SQL. Para isso, devem ser seguidos os sete passos básicos:


        1. Carregar o driver JDBC

        2. Definir a URL de conexão

        3. Estabelecer a conexão

        4. Criar um objeto “Statement”

        5. Criar o comando SQL

        6. Enviar o comando para o banco

        7. Processar os resultados



                                               Estudo Dirigido

        Este estudo trata-se do cadastro será dividido em duas partes:

              A primeira irá demonstrar os passos para criação do modelo de dados, criação das tabelas no
               MySQL.

              A segunda mostrará os passos para inclusão do driver de conexão Java com MySQL e criação
               do documento JSP para a conexão com o banco criado e a manipulação dos dados.

Nota: para a realização deste estudo dirigido, serão necessárias as seguintes ferramentas: DBDesigner para
desenhar o modelo de dados, MYSQL Query Browser para manipular o banco de dados e NetBeans para
criação do código Java.



                                                    Parte 1
1. Primeiramente, faça o desenho do modelo de dados no DBDesigner, como mostrado na figura a seguir:




2. Ainda no DBDesigner, salve o script de criação das tabelas, seguindo os passos abaixo:
       a. File
       b. Export
       c. SQL create script
       d. Save script to file
       e. Informe o local onde deseja salvar
       f. Save
       g. Feche a janela “Export SQL script”
3. Abrir o MySQL Query Browser
       a. Informe o server host - se for local: localhost, caso contrário, informe o IP da máquina que deseja
           acessar, o login e a senha do banco
       b. Em Defaut Schema digite: cadCarro
       c. OK (Aparecerá uma mensagem dizendo que o esquema não existe, deseja criar o esquema
           agora? Responda Yes
4. Importar o script gerado através do DBDesigner
       a. Arquivo
       b. Open script
       c. Localize o script e abra-o
       d. Executar (Após a execução, o seu banco estará criado
5. Insira os seguintes dados na tabela Modelo:




Nota: Não é necessário informar o código do modelo, pois, foi definido como auto-incrementável.
6. Insira os seguintes dados na tabela Carro:




Nota: Não é necessário informar o código do carro, pois, foi definido como auto-incrementável.
                                                      Parte 2

7. Abra o NetBeans e crie um projeto Web com o nome: CadCarro

8. Adicione a biblioteca de conexão Java – MySQL à sua aplicação:

       a. Copie o arquivo com a extensão .jar que se encontra no link da disciplina, no site
          www.professoralucelia.com.br. Crie um diretório chamado lib e salve o arquivo dentro dele.

       b. No NetBeans, clicar com o botão direito sobre o diretório libraries (bibliotecas se estiver usando a
          versão em português)
       c. Add jar/Folder (Adicionar o arquivo, caso o NetBeans esteja em Português)
       d. Procure o driver de conexão com o MySQL: mysql-connector-java-3.0.10-stable-bin.jar (por
          exemplo) e adicione-o.

9. Agora vamos ao código. Primeiramente será implementada uma consulta, foi por isso que adicionamos alguns
   modelos e carros no banco de dados

       a. Vamos criar um documento jsp chamado “consulta”, que irá mostrar todos os carros cadastrados.

       1     <%@ page import="java.sql.Connection" %>
       2     <%@ page import="java.sql.DriverManager" %>
       3     <%@ page import="java.sql.Statement" %>
       4     <%@ page import="java.sql.ResultSet" %>
       5     <%@ page import="java.sql.SQLException" %>                 consulta.jsp
       6     <html>
       7         <head>
       8             <title>Consulta de Ve&iacute;culos</title>
       9         </head>
       10        <body>
       11            <h1 style="text-align:center">Ve&iacute;culos Cadastrados</h1>
       12            <h1>
       13                 <%
       14                 Connection cn = null;
       15                 try {
       16                     // 1 - Carregar o driver JDBC
       17                     Class.forName("org.gjt.mm.mysql.Driver");
       18
       19                       //2 - Definir a URL de conexão
       20                       String url = "jdbc:mysql://localhost:3306/cadCaarro";
       21                       String usuario = "root";
       22                       String senha = "root";
       23
       24                      //3 - Estabelecer a conexão
       25                      cn = DriverManager.getConnection(url, usuario, senha);
       26                      //out.println("Conexão MySQL com cadCarro efetuada com sucesso");
       27                  } catch (SQLException ex) {
       28                      out.println("Erro de conexão com o banco de dados");
       29                  } catch (ClassNotFoundException ex) {
       30                      out.println("Driver não encontradao!");
       31                  }
       32
       33                  // 4 - Criar um objeto Statement
       34                  Statement st = null;
       35                  ResultSet rs = null;
       36                  try {
       37                      st = cn.createStatement();
       38                      //5 - Criar o comando SQL
       39                      String sql = "SELECT * FROM carro";
       40                      //6 - Enviar o comando para o banco
       41                      rs = st.executeQuery(sql);
       42                      System.out.println("Acesso aos dados efetuados com sucesso!!");
       43                  } catch (SQLException ex) {
       44                     System.out.println("Erro de acesso aos dados");
       45                 }
       46                 try {
       47                     //7 - Processar os resultados
       48                      while (rs.next()) {
       49                         out.print(rs.getInt("codigo") + " - ");
       50                         out.print(rs.getString("placa") + " - ");
       51                         out.print(rs.getInt("ano") + " - ");
       52                         out.print(rs.getString("cor") + " - ");
       53                         out.print(rs.getDouble("preco") + "<br />");
       54                         out.print("========================"+ "<br />");
       55                     }
       56                 } catch (SQLException ex) {
       57                     System.out.println("Erro de recuperação de dados");
       58                 }
       59                 %>
       60             </h1>
       61         </body>
       62     </html>


10. O carro pode ser consultado pela placa. Para isso, será necessário criar um formulário para que o usuário informe a
    placa do veículo que deseja pesquisar.
       1      <html>
       2          <head>
       3              <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       4              <title>Consulta de Carros</title>
       5          </head>
       6          <body>
       7              <h2>Clique no bot&atilde;o Consultar para visualizar os ve&iacute;culos
              cadastrados</h2>
       8              <form method="post" action="consultaPelaPlaca.jsp">
       9                  <input type="text" name="placa" size="15" maxlength="8">   index.jsp
       10                 <input type="submit" value="Pesquisar" />
       11             </form>
       12         </body>
       13     </html>
       14     <html>
       15         <head>
       16             <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       17             <title>Consulta de Carros</title>
       18         </head>
       19         <body>
       20             <h2>Clique no bot&atilde;o Consultar para visualizar os ve&iacute;culos
              cadastrados</h2>
       21             <form method="post" action="consultaPelaPlaca.jsp">
       22                 <input type="text" name="placa" size="15" maxlength="8">
       23                 <input type="submit" value="Pesquisar" />
       24             </form>
       25         </body>
       26     </html>


11. Após criar um index.jsp, crie um novo documento jsp com o nome consultaPelaPlaca:

       1      <%@ page import="java.sql.Connection" %>
       2      <%@ page import="java.sql.DriverManager" %>
       3      <%@ page import="java.sql.Statement" %>
       4      <%@ page import="java.sql.ResultSet" %>                    consultaPelaPlaca.jsp
       5      <%@ page import="java.sql.SQLException" %>
       6      <html>
       7          <head>
       8              <title>Consulta de Ve&iacute;culos</title>
       9          </head>
       10         <body>
       11             <h1 style="text-align:center">Ve&iacute;culos Cadastrados</h1>
       12             <h1>
       13                  <%
       14                  String placa = request.getParameter("placa");
       15                  int cont = 0;
       16                  Connection cn = null;
       17                  try {
       18                      // 1 - Carregar o driver JDBC
       19                      Class.forName("org.gjt.mm.mysql.Driver");
       20
       21                        //2 - Definir a URL de conexão
       22                        String url = "jdbc:mysql://localhost:3306/cadCaarro";
       23                        String usuario = "root";
       24                        String senha = "root";
       25
       26                     //3 - Estabelecer a conexão
       27                     cn = DriverManager.getConnection(url, usuario, senha);
       28                 //out.println("Conexão MySQL com cadCarro efetuada com sucesso");
       29                 } catch (SQLException ex) {
       30                     out.println("Erro de conexão com o banco de dados");
       31                 } catch (ClassNotFoundException ex) {
       32                     out.println("Driver não encontradao!");
       33                 }
       34                 // 4 - Criar um objeto Statement
       35                 Statement st = null;
       36                 ResultSet rs = null;
       37                 try {
       38                     st = cn.createStatement();
       39                     //5 - Criar o comando SQL
       40                     String sql = "SELECT c.codigo, c.placa, c.ano, c.cor, c.preco,
              m.descricao ";
       41                     sql += " FROM carro c INNER JOIN modelo m ";
       42                     sql += " ON c.modelo_codigo = m.codigo AND placa = '" + placa +
              "'";
       43                     //6 - Enviar o comando para o banco
       44                     rs = st.executeQuery(sql);
       45                     //out.println("Acesso aos dados efetuados com sucesso!!");
       46                     cont++;
       47                 } catch (SQLException ex) {
       48                     out.println("Erro de acesso aos dados");
       49                 }
       50                 try {
       51                     //7 - Processar os resultados
       52                     while (rs.next()) {
       53                         out.println(rs.getInt("codigo") + " - ");
       54                         out.println(rs.getString("descricao") + " - ");
       55                         out.println(rs.getString("placa") + " - ");
       56                         out.println(rs.getInt("ano") + " - ");
       57                         out.println(rs.getString("cor") + " - ");
       58                         out.println(rs.getDouble("preco") + "<br />");
       59                     }
       60                     if (cont == 0) {
       61                         out.println("<h1 style=\"color:red;\">Veículo não
              encontrado!!!</h1>");
       62                     }
       63                 } catch (SQLException ex) {
       64                     out.println("<h1 style=\"color:red;\">Erro ao recuperar os
              dados!!!</h1>");
       65                 }
       66                 %>
       67             </h1>
       68         </body>
       69     </html>


12. Para inserir dados no banco, vamos criar um formulário para que o usuário informe os dados que deseja inserir:

       1      <html>
       2          <head>
       3              <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       4              <title>Consulta de Carros</title>
       5          </head>
       6          <body>                                                        index2.jsp
       7              <div>
       8                  <form method="post" action="insercao.jsp">
       9                      C&oacute;digo do Modelo <br />
       10                     <input type="text" name="modelo" size="15" maxlength="3" /><br
              /><br />
       11                     Placa <br />
       12                     <input type="text" name="placa" size="15" maxlength="8" /><br
              /><br />
       13                     Ano <br />
       14                     <input type="text" name="ano" size="15" maxlength="4" /><br /><br
              />
       15                     Cor <br />
       16                     <input type="text" name="cor" size="15" maxlength="20" /><br
              /><br />
       17                       Valor <br />
       18                       <input type="text" name="preco" size="15"><br /><br />
       19
       20                    <input type="submit" value="Inserir" />
       21                </form>
       22            </div>
       23        </body>
       24    </html>


13. Após construir o formulário, crie um documento jsp, com o nome “insercao”, para receber os dados do formulário e
    inseri-los no banco de dados
       1     <%@ page import="java.sql.Connection" %>
       2     <%@ page import="java.sql.DriverManager" %>
       3     <%@ page import="java.sql.PreparedStatement" %>
       4     <%@ page import="java.sql.ResultSet" %>
       5     <%@ page import="java.sql.SQLException" %>
       6     <html>
       7         <head>
       8             <title>Consulta de Ve&iacute;culos</title>
       9         </head>
       10        <body>
       11            <%
       12                Connection cn = null;
       13                try {
       14                    // 1 - Carregar o driver JDBC
       15                    Class.forName("org.gjt.mm.mysql.Driver");
       16
       17                       //2 - Definir a URL de conexão
       18                       String url = "jdbc:mysql://localhost:3306/cadCaarro";
       19                       String usuario = "root";
       20                       String senha = "root";
       21
       22                       //3 - Estabelecer a conexão
       23                       cn = DriverManager.getConnection(url, usuario, senha);
       24                   //out.println("Conexão MySQL com cadCarro efetuada com sucesso");
       25                   } catch (SQLException ex) {
       26                       out.println("Erro de conexão com o banco de dados");
       27                   } catch (ClassNotFoundException ex) {
       28                       out.println("Driver não encontradao!");
       29                   }
       30
       31                // 4 - Criar um objeto Statement
       32                PreparedStatement pst = null;
       33                ResultSet rs = null;
       34                try {
       35                    //5 - Criar o comando SQL
       36                    String sql = "INSERT INTO carro (MODELO_codigo, placa, ano, cor,
             preco)VALUES (?, ?, ?, ?, ?)";
       37                    pst = cn.prepareStatement(sql);
       38
       39                       String   codModelos = request.getParameter("modelo");
       40                       String   placa = request.getParameter("placa");
       41                       String   anos = request.getParameter("ano");
       42                       String   cor = request.getParameter("cor");
       43                       String   precos = request.getParameter("preco");
       44
       45                       int codModelo, ano;
       46                       double preco;
       47                       codModelo = Integer.parseInt(codModelos);
       48                       ano = Integer.parseInt(anos);
       49                       preco = Double.parseDouble(precos);
       50
       51                       pst.setInt(1, codModelo);
       52                       pst.setString(2, placa);
       53                       pst.setInt(3, ano);
       54                       pst.setString(4, cor);
       55                       pst.setDouble(5, preco);
       56
       57
       58                       //6 - Enviar o comando para o banco
       59                       pst.executeUpdate();
       60                       out.println("Dados gravados com sucesso!!");
       61                   } catch (SQLException ex) {
       62                       out.println("Erro ao gravar os dados");
       63                   }
       64
       65              %>
66       </body>
67   </html>

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:10
posted:9/24/2011
language:Portuguese
pages:7