Você está na página 1de 8

LP IV Professora Luclia JSP - Conexo com banco de dados MySQL A linguagem Java possui classes que permitem a conexo

com banco de dados. Essas classes fazem parte do pacote JDBC (Java Database Connectivity), que uma API (Aplication Program Interface) que permite a comunicao com diversos bancos de dados. Ele instalado em conjunto com o JDK, no necessrio fazer nenhuma instalao adicional para manipular o banco de dados em Java. Existem algumas maneiras de fazer a ligao 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 conexo atravs de API nativa. Esta alternativa mais veloz, mas depende de uma arquitetura proprietria. A funo do JDBC disponibilizar um recurso no qual seja possvel estabelecer uma conexo com um banco de dados e nele executar comandos SQL. Para isso, devem ser seguidos os sete passos bsicos: 1. Carregar o driver JDBC 2. Definir a URL de conexo 3. Estabelecer a conexo 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 criao do modelo de dados, criao das tabelas no MySQL. A segunda mostrar os passos para incluso do driver de conexo Java com MySQL e criao do documento JSP para a conexo com o banco criado e a manipulao dos dados.

Nota: para a realizao deste estudo dirigido, sero necessrias as seguintes ferramentas: DBDesigner para desenhar o modelo de dados, MYSQL Query Browser para manipular o banco de dados e NetBeans para criao do cdigo Java.

Parte 1

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

2. Ainda no DBDesigner, salve o script de criao 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 contrrio, informe o IP da mquina 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 no existe, deseja criar o esquema agora? Responda Yes 4. Importar o script gerado atravs do DBDesigner a. Arquivo b. Open script c. Localize o script e abra-o d. Executar (Aps a execuo, o seu banco estar criado 5. Insira os seguintes dados na tabela Modelo:

Nota: No necessrio informar o cdigo do modelo, pois, foi definido como auto-incrementvel. 6. Insira os seguintes dados na tabela Carro:

Nota: No necessrio informar o cdigo do carro, pois, foi definido como auto-incrementvel.

Parte 2 7. Abra o NetBeans e crie um projeto Web com o nome: CadCarro 8. Adicione a biblioteca de conexo Java MySQL sua aplicao: a. Copie o arquivo com a extenso .jar que se encontra no link da disciplina, no site www.professoralucelia.com.br. Crie um diretrio chamado lib e salve o arquivo dentro dele. b. No NetBeans, clicar com o boto direito sobre o diretrio libraries (bibliotecas se estiver usando a verso em portugus) c. Add jar/Folder (Adicionar o arquivo, caso o NetBeans esteja em Portugus) d. Procure o driver de conexo com o MySQL: mysql-connector-java-3.0.10-stable-bin.jar (por exemplo) e adicione-o. 9. Agora vamos ao cdigo. 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.DriverManager" %> <%@ page import="java.sql.Statement" %> <%@ page import="java.sql.ResultSet" %> consulta.jsp <%@ page import="java.sql.SQLException" %> <html> <head> <title>Consulta de Ve&iacute;culos</title> </head> <body> <h1 style="text-align:center">Ve&iacute;culos Cadastrados</h1> <h1> <% Connection cn = null; try { // 1 - Carregar o driver JDBC Class.forName("org.gjt.mm.mysql.Driver"); //2 - Definir a URL de conexo String url = "jdbc:mysql://localhost:3306/cadCaarro"; String usuario = "root"; String senha = "root"; //3 - Estabelecer a conexo cn = DriverManager.getConnection(url, usuario, senha); //out.println("Conexo MySQL com cadCarro efetuada com sucesso"); } catch (SQLExcept ion ex) { out.println("Erro de conexo com o banco de dados"); } catch (C lassNotFoundExcept ion ex) { out.println("Driver no encontradao!"); } // 4 - Criar um objeto Statement Statement st = null; ResultSet rs = null; try { st = cn.createStatement(); //5 - Criar o comando SQL

39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

String sql = "SELECT * FROM carro"; //6 - Enviar o comando para o banco rs = st .executeQuery(sq l ) ; System.out.println("Acesso aos dados efetuados com sucesso!!"); } catch (SQLExcept ion ex) { System.out.println("Erro de acesso aos dados"); } try { //7 - Processar os resultados while (rs.next()) { out.print(rs.getInt("codigo") + " - "); out.print(rs.getString("placa") + " - "); out.print(rs.getInt("ano") + " - "); out.print(rs.getString("cor") + " - "); out.print(rs.getDouble("preco") + "<br />"); out.print("========================"+ "<br />"); } } catch (SQLException ex) { System.out.println("Erro de recuperao de dados"); } %> </h1> </body> </html>

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

11.Aps criar um index.jsp, crie um novo documento jsp com o nome consul taPe laP l aca :
1 2 3 4 5 6 7 8 9 <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.DriverManager" %> <%@ page import="java.sql.Statement" %> <%@ page import="java.sql.ResultSet" %> <%@ page import="java.sql.SQLException" %> <html> <head> <title>Consulta de Ve&iacute;culos</title> </head>

consultaPelaPlaca.jsp

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69

<body> <h1 style="text-align:center">Ve&iacute;culos Cadastrados</h1> <h1> <% String placa = request.getParameter("placa"); int cont = 0; Connection cn = null; try { // 1 - Carregar o driver JDBC Class.forName("org.gjt.mm.mysql.Driver"); //2 - Definir a URL de conexo String url = "jdbc:mysql://localhost:3306/cadCaarro"; String usuario = "root"; String senha = "root"; //3 - Estabelecer a conexo cn = DriverManager.getConnection(url, usuario, senha); //out.println("Conexo MySQL com cadCarro efetuada com sucesso"); } catch (SQLException ex) { out.println("Erro de conexo com o banco de dados"); } catch (ClassNotFoundException ex) { out.println("Driver no encontradao!"); } // 4 - Criar um objeto Statement Statement st = null; ResultSet rs = null; try { st = cn.createStatement(); //5 - Criar o comando SQL String sql = "SELECT c.codigo, c.placa, c.ano, c.cor, c.preco, m.descricao "; sql += " FROM carro c INNER JOIN modelo m "; sql += " ON c.modelo_codigo = m.codigo AND placa = '" + placa + "'"; //6 - Enviar o comando para o banco rs = st.executeQuery(sql); //out.println("Acesso aos dados efetuados com sucesso!!"); cont++; } catch (SQLException ex) { out.println("Erro de acesso aos dados"); } try { //7 - Processar os resultados while (rs.next()) { out.println(rs.getInt("codigo") + " - "); out.println(rs.getString("descricao") + " - "); out.println(rs.getString("placa") + " - "); out.println(rs.getInt("ano") + " - "); out.println(rs.getString("cor") + " - "); out.println(rs.getDouble("preco") + "<br />"); } if (cont == 0) { out.println("<h1 style=\"color:red;\">Veculo no encontrado!!!</h1>"); } } catch (SQLException ex) { out.println("<h1 style=\"color:red;\">Erro ao recuperar os dados!!!</h1>"); } %> </h1> </body> </html>

12.Para inserir dados no banco, vamos criar um formulrio para que o usurio informe os dados que deseja inserir:
1 2 <html> <head>

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Consulta de Carros</title> </head> index2.jsp <body> <div> <form method="post" action="insercao.jsp"> C&oacute;digo do Modelo <br /> <input type="text" name="modelo" size="15" maxlength="3" /><br /><br /> Placa <br /> <input type="text" name="placa" size="15" maxlength="8" /><br /><br /> Ano <br /> <input type="text" name="ano" size="15" maxlength="4" /><br /><br /> Cor <br /> <input type="text" name="cor" size="15" maxlength="20" /><br /><br /> Valor <br /> <input type="text" name="preco" size="15"><br /><br /> <input type="submit" value="Inserir" /> </form> </div> </body> </html>

13.Aps construir o formulrio, crie um documento jsp, com o nome insercao, para receber os dados do formulrio e inseri-los no banco de dados
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.DriverManager" %> <%@ page import="java.sql.PreparedStatement" %> <%@ page import="java.sql.ResultSet" %> <%@ page import="java.sql.SQLException" %> <html> <head> <title>Consulta de Ve&iacute;culos</title> </head> <body> <% Connection cn = null; try { // 1 - Carregar o driver JDBC Class.forName("org.gjt.mm.mysql.Driver"); //2 - Definir a URL de conexo String url = "jdbc:mysql://localhost:3306/cadCaarro"; String usuario = "root"; String senha = "root"; //3 - Estabelecer a conexo cn = DriverManager.getConnection(url, usuario, senha); //out.println("Conexo MySQL com cadCarro efetuada com sucesso"); } catch (SQLException ex) { out.println("Erro de conexo com o banco de dados"); } catch (ClassNotFoundException ex) { out.println("Driver no encontradao!"); } // 4 - Criar um objeto Statement PreparedStatement pst = null; ResultSet rs = null; try { //5 - Criar o comando SQL String sql = "INSERT INTO carro (MODELO_codigo, placa, ano, cor, preco)VALUES (?, ?, ?, ?, ?)"; pst = cn.prepareStatement(sql); String codModelos = request.getParameter("modelo"); String placa = request.getParameter("placa"); String anos = request.getParameter("ano");

42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

String cor = request.getParameter("cor"); String precos = request.getParameter("preco"); int codModelo, ano; double preco; codModelo = Integer.parseInt(codModelos); ano = Integer.parseInt(anos); preco = Double.parseDouble(precos); pst.setInt(1, codModelo); pst.setString(2, placa); pst.setInt(3, ano); pst.setString(4, cor); pst.setDouble(5, preco); //6 - Enviar o comando para o banco pst.executeUpdate(); out.println("Dados gravados com sucesso!!"); } catch (SQLException ex) { out.println("Erro ao gravar os dados"); } %> </body> </html>

Você também pode gostar