FORUM DARKERS

Tecnologia & Informática => Programação => Java => Topic started by: Reeves on 01 de December , 2007, 03:15:40 AM

Title: JavaServer Pages + MySQL
Post by: Reeves on 01 de December , 2007, 03:15:40 AM
Olá galera, nesse topic irei ensinar a vocês a pratica de se conectar uma pagina .JSP ao MySQL e com isso buscar ou inserir dados...
estou me baseando apenas nas aulas de jsp que tenho, então isso não tem Font!


Requisitos:

MySQL 5.0
http://dev.mysql.com/downloads/mysql/5.0.html (http://dev.mysql.com/downloads/mysql/5.0.html)

MySQL-Connector-java.Jar
http://www.2shared.com/file/2556556/93e ... 6-bin.html (http://www.2shared.com/file/2556556/93eefc8a/mysql-connector-java-506-bin.html)

NetBeans ou outra IDE se sua escolha.
http://www.netbeans.info/downloads/index.php (http://www.netbeans.info/downloads/index.php)

no meu caso, estou usando o NetBeans IDE 6.0 Beta 2

- - - - - - - - - - - -- - - --- - - -- - - -- - - - --

Ok, vamos onde interessa!

// Criando o Script SQL e jogando no MySQL!

criei um script sql para usarmos neste exemplo.
abra o NotePade e cole o codigo abaixo:

create database darkers;
use darkers;
create table forum(cod integer auto_increment primary key,
nomeforum varchar(100));
insert into forum(nomeforum) values('Áreas Restritas');
insert into forum(nomeforum) values('Administração Security Darkers');
insert into forum(nomeforum) values('Forum Geral');
insert into forum(nomeforum) values('Segurança & Hacking - Programação');
insert into forum(nomeforum) values('Tecnologia & Informática');
insert into forum(nomeforum) values('Comunicações');

salve-o como darkers.sql em ASCII em c:
// Por não ser todas versões do mysql que utilizam UTF-8, modifiquei aqui para asc


ok, agora vamos para o Terminal de comando MySQL
depois de instalado, basta digitar mysql no Prompt do DOS...

iremos importar nosso script de exemplo
basta digitar, no terminal mySQL:
Source c:\darkers.sql;

 (//http://www.niggorex.com/pfiles/421/03.jpg)

com isso, será criado o banco de dados e suas respectivas tabelas..
e pronto! nossa parte no MySQL esta terminada.



// Importando o Driver e Coddando o Source de conexão MySQL

 (//http://www.niggorex.com/pfiles/420/02.jpg)

Ok, no NetBeans

primeiramente iremos importar o Driver.jar para a IDE
 (//http://www.niggorex.com/pfiles/422/05.jpg)
ache o .jar que baixou em requisitos e é só importar!


Sources .JSP devidamente comentados para o trabalho!


Source: listaForum.jsp
jsp que faz uma busca no banco e retorna os dados. ( o basico em uma conexão )
<%@ page contentType="text/html" %>
<%@ page pageEncoding="UTF-8" %>
<%@ page import="java.sql.*" %>

<!--
    Document   : listaForum.jsp
    Created on : 01/12/2007, 03:00:27
    Author     : THe Reeves
-->

<%
// Declarando as Variaveis de Conexão.
    Connection conexao    = null;
    Statement  declaracao = null;
    ResultSet  resultados = null;
   
    try
    {
    // Requisitando o uso do Driver importado no ClassPath
        Class.forName("com.mysql.jdbc.Driver");
       
    // Strings de acesso ao MySQL   
        String urlBanco = "jdbc:mysql://localhost:3306/darkers";
        String usuario  = "root";
        String senha    = "root";
       
        String     comandoSql = null;
       
    // Abrindo Conexão .   
        conexao = DriverManager.getConnection(urlBanco, usuario, senha);
    // Declarando Acesso.   
        declaracao = conexao.createStatement();
    // Declarando comando SQL.   
        comandoSql = "SELECT * FROM forum";
    // Executando comando SQL.   
        resultados = declaracao.executeQuery(comandoSql);
    }
    // Pegando possivel erro de classe não encontrada.
    catch(ClassNotFoundException e)
    {
        System.out.println("Driver não encontrado");
    }
    // pegando possivel erro de SQL incorreta.
    catch(SQLException e)
    {
        System.out.println("Erro no acesso ao banco de dados.");
    }
%>


<html>
    <head>
        <title>Categorias do Forum Darkers</title>
    </head>
    <body>
 
    <% // Verificando se resultado não está vazio.
        if (resultados != null) {
            // Acesso ao banco de dados foi bem sucedido.
            int i = 1;
        %>
            <table border="1">
            <% // abrindo o laço de coleta de dados.
                while (resultados.next()) { %>
                    <tr>
                        <td><%= i = i++ %></td>
                   <td><% // Preenchendo a tabela com os dados de nomeforum  %>
                            <%= resultados.getString("nomeforum") %>
                    </tr>
                <% } %>
            </table>
        <% } else {
        // cai aqui, caso o resultado esteja vazio.
        %>
            <h1>Erro de acesso ao banco de dados!</h1>
        <% } %>
       
        <% // Liberando os Recurços!
           if (resultados != null)
               resultados.close();
           if (declaracao != null)
               declaracao.close();
           if (conexao != null)
               conexao.close();
           // fim!   
               %>
    </body>
</html>



Source: listaInsereForum.jsp
igual o de cima, mas com um Form de Inserir novas categorias de Sub-Foruns.
<%@ page contentType="text/html" %>
<%@ page pageEncoding="UTF-8" %>
<%@ page import="java.sql.*" %>

<!--
    Document   : listaInsereForum.jsp
    Created on : 01/12/2007, 03:07:27
    Author     : THe Reeves
-->

<%
// Declarando as Variaveis de Conexão.
    Connection conexao    = null;
    Statement  declaracao = null;
    ResultSet  resultados = null;
    String insere = null;
   
   
    try
    {
// Requisitando o uso do Driver importado no ClassPath
        Class.forName("com.mysql.jdbc.Driver");
       
// Strings de acesso ao MySQL e requisição do Form
        String urlBanco = "jdbc:mysql://localhost:3306/unilins";
        String usuario  = "root";
        String senha    = "Reeves00";
        String peganome = request.getParameter("forum");
       
        String     comandoSql = null;
// Abrindo Conexão .       
        conexao = DriverManager.getConnection(urlBanco, usuario, senha);
       
        declaracao = conexao.createStatement();
// Definindo comando de listagem e insersão
        comandoSql = "SELECT nomeforum FROM forum ORDER BY nomeforum";
        insere = "INSERT INTO forum (nomeforum) VALUES ('" + peganome +"')";
        resultados = declaracao.executeQuery(comandoSql);
        resultados = declaracao.executeQuery(insere);
    }
    catch(ClassNotFoundException e)
    {
        System.out.println("Driver não encontrado");
    }
    catch(SQLException e)
    {
        System.out.println("Erro no acesso ao banco de dados.");
    }
%>


<html>
    <head>
        <title>Lista e Insere Forum</title>
    </head>
    <body>
        <%
// Se o Resultado for prenchido, então entra no if       
        if (resultados != null) {
            int i = 1;
        %>
            <table border="1">
                <BR><b><h2>Forum Cadastrados</h2></b>
                <tr>
                    <td><b>Nome do Sub-Forum</b></td>
                    </tr>
                <% while (resultados.next()) { %>
                <% i = i++; %>
                <tr>
                    <td><%= resultados.getString("nomeforum") %> </td>
                    </tr>
                <% } %>
               </table><BR><BR>
               <table border="0">
                   <form action="trabcursos.jsp" method="post">
                    <h2>Cadestre um Forum!</h2>
                   <tr>
                   <td><b>Nome do Forum</b></td>
                   <td><input type="text" name="forum">
                   </td>
               </tr><tr>
                    <td><input type="submit" name="envia" value="Cadastrar!"></td><td><input type="reset" value="Limpar"></td>
                   </tr>
                    </form>
               </table>
                             
        <% } else {%>
            <h1>Erro de acesso ao banco de dados!</h1>
        <% } %>
       
        <%
           if (resultados != null)
               resultados.close();
           if (declaracao != null)
               declaracao.close();
           if (conexao != null)
               conexao.close();
        %>
    </body>
</html>

Revisado!  ;)
Title: Re: JavaServer Pages + MySQL
Post by: Anonymous on 01 de December , 2007, 04:02:37 AM
Não consegui ativar pelo prompt, não aconteceu nada, então eu digitei
  no próprio MySql Query Browser:

(//http://i2.tinypic.com/6u67xb5.jpg)


Ainda não aprendi jsp por isso não terminei o teste aqui.
Mas deve ser muito bom.
Title: Re: JavaServer Pages + MySQL
Post by: Reeves on 07 de December , 2007, 04:09:26 AM
Quote from: "DARK BOMBER"Não consegui ativar pelo prompt, não aconteceu nada, então eu digitei
  no próprio MySql Query Browser:

(//http://i2.tinypic.com/6u67xb5.jpg)


Ainda não aprendi jsp por isso não terminei o teste aqui.
Mas deve ser muito bom.

sim sim...
o problema estava na codificação do arquivo..
salve o darkers.sql como ASCII
e tenta novamente  ;)

duvidas, veja logo a cima, revisei o codigo
para funcionar em pelo menos quase todas versões do MySQL

Abraços..