Como fazer form como JAVA?

Eu queria criar uma form que inseri-se seus dados em um Banco de Dados Mysql.

Queria estilizar o form também em java, sou novo aqui na comunidade não tenho prática para navegar aqui e nem para saber de onde começar.

Alguem pode me ajudar?

A idéia é criar uma agenda só pra aprender mesmo. :smiley:

Tua dúvida está meio confusa. Seria interessante explicá-la melhor! E acho que só com Java isso não tem como fazer isso de maneira transparente (tipo, com base no nome de cada campo do teu form associar a tabela e inserir). Comece do início:

  1. O que é o teu formulário? É um formulário Web? Uma aplicação Swing?
  2. Como fazer uma conexão com o banco de dados?
  3. Como executar operações no banco? Onde fazer o mapeamento das informações?

E por aí vai. Se a tua dúvida não fosse essa, explica melhor aí!

Falou.

[quote=ricardix]Eu queria criar uma form que inseri-se seus dados em um Banco de Dados Mysql.

Queria estilizar o form também em java, sou novo aqui na comunidade não tenho prática para navegar aqui e nem para saber de onde começar.

Alguem pode me ajudar?

A idéia é criar uma agenda só pra aprender mesmo. :smiley: [/quote]

Acredito que começar aprendendo GUI de início no Java é um pouco complicado. Comece pelo apostila da Caelum FJ-11, é um excelente início, depois procure sobre Swing, aqui nos tutoriais do GUJ.

Qualquer dúvida poste ai!

Valeu

Então

a idéia é fazer tudo por web a principio.

  1. Quero criar um form. (po ex. nome, telfone)

  2. Essa form vai enviar as informações para um banco Mysql

  3. Depois uma página em java, iria conectar ao banco e mostrar esses registro do Banco

:lol:

Pelo que li é a o passo 2 e 3 é possível como java, mas não achei nada na internet legal.
Queria saber se o passo 1 é possível fazer como Java ou eu teria que fazer um form HTML.

Eu tenho um noção legal de programação mas só em php e html, agora to querendo conhecer algo que dizer ser maior, aí pensei em começar fazer essa “Agenda” ;

[quote=ricardix]Então

a idéia é fazer tudo por web a principio.

  1. Quero criar um form. (po ex. nome, telfone)

  2. Essa form vai enviar as informações para um banco Mysql

  3. Depois uma página em java, iria conectar ao banco e mostrar esses registro do Banco

:lol:

Pelo que li é a o passo 2 e 3 é possível como java, mas não achei nada na internet legal.
Queria saber se o passo 1 é possível fazer como Java ou eu teria que fazer um form HTML.

Eu tenho um noção legal de programação mas só em php e html, agora to querendo conhecer algo que dizer ser maior, aí pensei em começar fazer essa “Agenda” ;

[/quote]

No caso de estar trabalhando com JSP terá que fazer as páginas em HTML mesmo, existe outras coisas para usar na view como Flex, ou JSF.
Dê uma lida nesta apostila aqui, que ensina a fazer tudo o que você precisa:

VAleu

bem dar uma olhada no post no meu blog sobre conectar java + mysql.

Porem é importante, que vc tenha bons conhecimentos de O.O e saber o basico do JEE que é servlet e JSP.

Se nao atender o basico do basico será muito dificil conseguir fazer alguma coisa.

flw!

Legal,

Vou por em pratica essa aposta e o tutorial então,
Vou tentar agilizar isso essa madrugada (tomando café) :slight_smile:

[quote=wagnerfrancisco]Tua dúvida está meio confusa. Seria interessante explicá-la melhor! E acho que só com Java isso não tem como fazer isso de maneira transparente (tipo, com base no nome de cada campo do teu form associar a tabela e inserir). Comece do início:

  1. O que é o teu formulário? É um formulário Web? Uma aplicação Swing?
  2. Como fazer uma conexão com o banco de dados?
  3. Como executar operações no banco? Onde fazer o mapeamento das informações?

E por aí vai. Se a tua dúvida não fosse essa, explica melhor aí!

Falou.[/quote]

=======================================================================================================[code]

Primeiro vc cria as classes:

Crie um pacote com o nome de model e crie as classes a seguir:

Classe Cliente:

[code]package model;

import java.util.ArrayList;
import java.util.List;

/**
*

  • @author FredSi
    */
    public class Cliente extends Usuario {

    private String codigo;

    private String nome;

    private String email;

    private String telefone;

    private List pedidos = new ArrayList();

    private List enderecos = new ArrayList();

    public String getCodigo() {
    return codigo;
    }

    public void setCodigo(String codigo) {
    this.codigo = codigo;
    }

    public String getEmail() {
    return email;
    }

    public void setEmail(String email) {
    this.email = email;
    }

    public String getNome() {
    return nome;
    }

    public void setNome(String nome) {
    this.nome = nome;
    }

    public String getTelefone() {
    return telefone;
    }

    public void setTelefone(String telefone) {
    this.telefone = telefone;
    }

    public List getEndereco() {
    return enderecos;
    }

    public List getPedidos() {
    return pedidos;
    }

    public Cliente(){
    super();
    }

    public Cliente(String login, String senha, int tipo, String codigo,
    String nome, String email, String telefone) {
    super(login, senha, tipo);
    this.codigo = codigo;
    this.nome = nome;
    this.email = email;
    this.telefone = telefone;
    }

    public boolean inserirEndereco(Endereco endereco){
    return enderecos.add(endereco);
    }

    public boolean inserirPedido(Pedido pedido){
    return pedidos.add(pedido);
    }

}[/code]

[code]Classe usuario:

package model;

/**
*

  • @author FredSi
    */
    public class Usuario {

    private String login;

    private String senha;

    private int tipo;

    public String getLogin() {
    return login;
    }

    public void setLogin(String login) {
    this.login = login;
    }

    public String getSenha() {
    return senha;
    }

    public void setSenha(String senha) {
    this.senha = senha;
    }

    public int getTipo() {
    return tipo;
    }

    public void setTipo(int tipo) {
    this.tipo = tipo;
    }

    public Usuario() {
    super();
    }

    public Usuario(String login, String senha, int tipo) {
    super();
    this.login = login;
    this.senha = senha;
    this.tipo = tipo;
    }

}[/code]

Agora vamos criar um pacote modelDAO este pacote fica responsável pelo acesso dos objetos da classe, para uma boa pratica de programação cada classe model criada seria melhor criar uma classeDAO dentro do pacote modelDAO.

Segue a classe DAO para acesso ao banco de dados referente a classe usuario.
Este DAO será responsável pelo login do sisteminha.

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package model.DAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import model.Usuario;
import util.Conexao;
import util.Configurador;

/**
*

  • @author 2010013
    */
    public class UsuarioDAO {

    Configurador config = new Configurador();
    String url;
    String driver;
    String login;
    String senha;

    public UsuarioDAO() {

     url = config.getUrl();
    
     driver = config.getDriver();
    
     login = config.getLogin();
    
     senha = config.getSenha();
    

    }

    public static Usuario inserir(String login, String senha,
    int tipo) {

     Usuario usuario = null;
    
     UsuarioDAO userDAO = new UsuarioDAO();
    
     try {
         //Criação do insert
    
         String sql = "insert into usuario "
                 + "(login,senha,tipo) "
                 + "values(?,?,?)";
    
         Conexao conex = new Conexao(userDAO.url, userDAO.driver,
                 userDAO.login, userDAO.senha);
    
         Connection con = conex.obterConexao();
    
         PreparedStatement comando = con.prepareStatement(sql);
    
         comando.setString(1, login);
         comando.setString(2, senha);
         comando.setInt(3, tipo);
    
         comando.executeUpdate();
    
    
     } catch (Exception e) {
         System.out.println(e.getMessage());
    
     }
    
     usuario = new Usuario(login, senha, tipo);
    
     return usuario;
    

    }

    public static Usuario buscarPorLoginSenha(String login, String senha) {
    Usuario usuario = null;

     UsuarioDAO userDAO = new UsuarioDAO();
    
     try {
         String sql = "Select * from usuario "
                 + "where login = ? and senha = ?";
    
         Conexao conex = new Conexao(
                 userDAO.url, userDAO.driver, userDAO.login, userDAO.senha);
    
         Connection con = conex.obterConexao();
    
         PreparedStatement comando = con.prepareStatement(sql);
    
         comando.setString(1, login);
         comando.setString(2, senha);
    
         ResultSet rs = comando.executeQuery();
    
         if (rs.next()) {
             usuario = new Usuario(
                     rs.getString("login"),
                     rs.getString("senha"),
                     rs.getInt("tipo"));
         }
    
         rs.close();
         comando.close();
         con.close();
    
     } catch (Exception e) {
         System.out.println(e.getMessage());
     }
     return usuario;
    

    }

}[/code]

Agora a classe DAO da classe cliente:

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package model.DAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import model.Cliente;
import util.Conexao;
import util.Configurador;

/**
*

  • @author 2010013
    */
    public class ClienteDAO {

    Configurador config = new Configurador();
    String url;
    String driver;
    String login;
    String senha;

    public ClienteDAO() {
    url = config.getUrl();

     driver = config.getDriver();
    
     login = config.getLogin();
    
     senha = config.getSenha();
    

    }

    public static Cliente inserirCliente(
    String codigo, String nome, String email, String telefone,
    String login) {

     Cliente cliente = null;
    
     ClienteDAO clienteDAO = new ClienteDAO();
    
     try {
         //Criação do insert
    
         String sql = "insert into cliente "
                 + "(codigo,nome,email,telefone,login)"
                 + "values(?,?,?,?,?)";
    
         Conexao conex = new Conexao(clienteDAO.url, clienteDAO.driver,
                 clienteDAO.login, clienteDAO.senha);
    
         Connection con = conex.obterConexao();
    
         PreparedStatement comando = con.prepareStatement(sql);
    
         comando.setString(1, codigo);
         comando.setString(2, nome);
         comando.setString(3, email);
         comando.setString(4, telefone);
         comando.setString(5, login);
    
         comando.executeUpdate();
     } catch (Exception e) {
         System.out.println(e.getMessage());
    
     }
    
     cliente = new Cliente(null, null, 0, codigo, nome, email, telefone);
    
     return cliente;
    

    }

    public static Cliente buscarPorLogin(String login) {
    Cliente cliente = null;

     ClienteDAO cliDAO = new ClienteDAO();
    
     try {
         String sql = "Select * from usuario u , cliente c  "
                 + "where u.login = ? ";
    
         Conexao conex = new Conexao(
                 cliDAO.url, cliDAO.driver, cliDAO.login, cliDAO.senha);
    
         Connection con = conex.obterConexao();
    
         PreparedStatement comando = con.prepareStatement(sql);
    
         comando.setString(1, login);
    
         ResultSet rs = comando.executeQuery();
    
         if (rs.next()) {
             cliente = new Cliente(
                     rs.getString("login"),
                     rs.getString("senha"),
                     rs.getInt("tipo"),
                     rs.getString("codigo"),
                     rs.getString("nome"),
                     rs.getString("email"),
                     rs.getString("telefone"));
         }
    
         rs.close();
         comando.close();
         con.close();
    
     } catch (Exception e) {
         System.out.println(e.getMessage());
     }
     return cliente;
    

    }

    public static Cliente atualizar(String login,
    String nome, String email, String telefone) {

     Cliente cliente = null;
    
     ClienteDAO cliDAO = new ClienteDAO();
    
     try {
    
    
         String sql = "update cliente set "
                 + "nome = ? , email = ? , telefone = ? where login = ? ";
    
         Conexao conex = new Conexao(
                 cliDAO.url, cliDAO.driver, cliDAO.login, cliDAO.senha);
    
         Connection con = conex.obterConexao();
    
         PreparedStatement comando = con.prepareStatement(sql);
    
    
         comando.setString(1, nome);
         comando.setString(2, email);
         comando.setString(3, telefone);
         comando.setString(4, login);
    
    
         comando.executeUpdate();
    
    
     } catch (Exception e) {
         System.out.println(e.getMessage());
    
     }
    
     cliente = new Cliente();
    
     return cliente;
    

    }

}[/code]

Agora será criado um apcote controller que será responssável por gerenciar o sistema.

Neste pacote colocarei um Servlet que será meu controle das açoes do sistema.

[code]public class InfoServlet extends HttpServlet {

//Constantes que representam as tarefas
private static final String LOGIN = "login";

/** 
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {

        //recupera a tarefa
        String tarefa = request.getParameter("tarefa");

        //Executa a tarefa apropriada
        if (tarefa.equals(LOGIN)) {
            validarLogin(request, response);
        }


    } finally {
        out.close();
    }
}



protected void validarLogin(HttpServletRequest request,
        HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    Usuario user = new Usuario();

    String login = request.getParameter("login");
    String senha = request.getParameter("senha");

    user = UsuarioDAO.buscarPorLoginSenha(login, senha);

    if (user == null) {
        response.sendRedirect("login.jsp?mensagem=*login ou senha inválidos!");
    } else {
        request.setAttribute("cliente", ClienteDAO.buscarPorLogin(login));

        // Redireciona
        RequestDispatcher rd = request.getRequestDispatcher("/areaCliente.jsp");
        rd.forward(request, response);
    }

}

//
/**
* Handles the HTTP GET method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);

}

/** 
 * Handles the HTTP <code>POST</code> method.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);


}

/** 
 * Returns a short description of the servlet.
 * @return a String containing servlet description
 */
@Override
public String getServletInfo() {
    return "Short description";

}// </editor-fold>

}[/code]

Agora vou colocar as classes responsáveis pela conexão do banco de dados isso é levando em consideração que estou utilizando MYSql 5.5.
Para isso crie um pacote para essas classes com o nome de util:

Classe conexao: Responssavel pelos get e seters e construtores da conexão com o BD.

[code]package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao {

private String url;

private String driver;

private String login;

private String senha;

public Conexao(String url, String driver, String login,
		String senha) {
	try {

		this.url = url;
		this.driver = driver;
		this.login = login;
		this.senha = senha;
		Class.forName(driver);

	} catch (ClassNotFoundException e) {

	}
}

public Connection obterConexao(){
	Connection con =null;
	try{
		con = DriverManager.getConnection(url,login,senha);
	}catch (SQLException e){

	}
	return con;
}

public String getDriver() {
	return driver;
}

public String getLogin() {
	return login;
}

public String getSenha() {
	return senha;
}

public String getUrl() {
	return url;
}

}[/code]

Agora a classe configurador do BD responssavel pelas configurações de acesso ao banco de dados:

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package util;

/**
*

  • @author 2010013
    */
    public class Configurador {

    private String url;
    private String driver;
    private String login;
    private String senha;
    private static final String URL_DEFAULT = “jdbc:mysql://localhost:3306/nomedoseuprojeto”;
    private static final String DRIVER_DEFAULT = “com.mysql.jdbc.Driver”;
    private static final String LOGIN_DEFAULT = “root”;
    private static final String SENHA_DEFAULT = “suasenha”;

    public Configurador() {
    url = URL_DEFAULT;
    driver = DRIVER_DEFAULT;
    login = LOGIN_DEFAULT;
    senha = SENHA_DEFAULT;
    }

    public String getDriver() {
    return driver;
    }

    public String getLogin() {
    return login;
    }

    public String getSenha() {
    return senha;
    }

    public String getUrl() {
    return url;
    }
    }
    [/code]

Bom agora vamos para JSP e html para podermos acessar o sistema e ver o funcionamento dele:

Segue uma págian web responsável por efetuar o login no sistema:

[code]<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

Autenticar Usuário login

senha

[/code]

E agora a jsp responsável pela area do cliente apos o login efetuado com sucesso:

[code]<%@page import=“model.Cliente”%>
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

JSP Page <% Cliente cliente = (Cliente) request.getAttribute("cliente"); %>

Área do Cliente

<% out.print(cliente.getNome()); String login = cliente.getLogin(); %> [/code]

Bom é isso ai, qualquer dúvida estamos ai.

Acho que depois de 3 anos ele ja deve ter conseguido fazer o form dele :lol:

Mas legal, vc postou um codigo completo, só tome cuidado com scriptlets no seu jsp

[quote=igor_ks]Acho que depois de 3 anos ele ja deve ter conseguido fazer o form dele :lol:

Mas legal, vc postou um codigo completo, só tome cuidado com scriptlets no seu jsp[/quote]

Valeu, depois que postei é que ví que este post era muito antigo, rsrsrs.