[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:
- O que é o teu formulário? É um formulário Web? Uma aplicação Swing?
- Como fazer uma conexão com o banco de dados?
- 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.