Oi pessoal, estou fazendo um sisteminha da faculdade de uma transportadora.
bom tenho duas duvidas cruéis…
mas primeiro meu código:
[code]
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<c:import url="/cabecalho.jsp" />
Consulta de Veiculos | |||
Modelo: | Estado Geral: | Selecione Novo Bom Regular Ruim | |
Chassi: | Regiao de Entrega: | ||
Placa: |
NOVO [/code] [code]package br.com.transportesmaster.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import br.com.transportesmaster.model.VeiculoMODEL;
public class VeiculoDAO extends GenericDAO {
/*
* String que representam os comando SQL utilizados na classe
*/
private static final String QUERY_INSERT =
"insert into veiculo (marca_veiculo, " +
"modelo_veiculo, categoria_veiculo, " +
"ano_veiculo, placa_veiculo, chassi_veiculo, " +
"estado_geral_veiculo, regiao_entrega_veiculo, " +
"tipo_mercadoria_veiculo, capacidade_veiculo) " +
"values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
private static final String QUERY_UPDATE =
"update veiculo set marca_veiculo = ?, " +
"modelo_veiculo = ?, categoria_veiculo = ?, " +
"ano_veiculo = ?, placa_veiculo = ?, " +
"chassi_veiculo = ?, estado_geral_veiculo = ?, " +
"regiao_entrega_veiculo = ?, tipo_mercadoria_veiculo = ?" +
", capacidade_veiculo = ? where id = ?";
private static final String QUERY_DELETE =
"update veiculo set status_veiculo = 0 where id_veiculo = ?";
// método construtor sem argumentos
public VeiculoDAO() throws ClassNotFoundException, SQLException {
} // fim do construtor
// método para inserir um veiculo no banco de dados
public void incluirVeiculo( VeiculoMODEL veiculoMODEL ) throws SQLException, ClassNotFoundException {
Connection connection = super.conectar();
PreparedStatement stmt = connection.prepareStatement( QUERY_INSERT );
stmt.setString( 1, veiculoMODEL.getMarca() );
stmt.setString( 2, veiculoMODEL.getModelo() );
stmt.setString( 3, veiculoMODEL.getCategoria() );
stmt.setInt( 4, veiculoMODEL.getAno() );
stmt.setString( 5, veiculoMODEL.getPlaca() );
stmt.setString( 6, veiculoMODEL.getChassi() );
stmt.setString( 7, veiculoMODEL.getEstado_geral() );
stmt.setString( 8, veiculoMODEL.getRegiao_entrega() );
stmt.setString( 9, veiculoMODEL.getTipo_mercadoria() );
stmt.setDouble( 10, veiculoMODEL.getCapacidade() );
stmt.execute();
stmt.close();
super.desconectar( connection );
} // fim do método incluirVeiculo
// método para editar veiculo no banco de dados
public void editarVeiculo( VeiculoMODEL veiculoMODEL ) throws SQLException, ClassNotFoundException {
Connection connection = super.conectar();
PreparedStatement stmt = connection.prepareStatement( QUERY_UPDATE );
stmt.setString( 1, veiculoMODEL.getMarca() );
stmt.setString( 2, veiculoMODEL.getModelo() );
stmt.setString( 3, veiculoMODEL.getCategoria() );
stmt.setInt( 4, veiculoMODEL.getAno() );
stmt.setString( 5, veiculoMODEL.getPlaca() );
stmt.setString( 6, veiculoMODEL.getChassi() );
stmt.setString( 7, veiculoMODEL.getEstado_geral() );
stmt.setString( 8, veiculoMODEL.getRegiao_entrega() );
stmt.setString( 9, veiculoMODEL.getTipo_mercadoria() );
stmt.setDouble( 10, veiculoMODEL.getCapacidade() );
stmt.setInt( 11, veiculoMODEL.getId() );
stmt.execute();
stmt.close();
super.desconectar( connection );
} // fim do método editarVeiculo
// método para deletar veiculo do banco de dados
public void deletarVeiculo( VeiculoMODEL veiculoMODEL ) throws ClassNotFoundException, SQLException {
Connection connection = super.conectar();
PreparedStatement stmt = connection.prepareStatement( QUERY_DELETE );
stmt.setInt( 1, veiculoMODEL.getId() );
stmt.execute();
stmt.close();
super.desconectar( connection );
} // fim do método deletarVeiculo
// método para gerar um comando sql dinamicamente
private String createQuery(VeiculoMODEL veiculoMODEL) {
StringBuilder builder = new StringBuilder();
builder.append("SELECT * FROM veiculo WHERE 1 = 1 AND status_veiculo = 1");
if(!veiculoMODEL.getModelo().equals(""))
builder.append(" AND modelo_veiculo = \"" + veiculoMODEL.getModelo() + "\" ");
if(!veiculoMODEL.getEstado_geral().equals("") && !veiculoMODEL.getEstado_geral().equals(" "))
builder.append(" AND estado_geral_veiculo = \"" + veiculoMODEL.getEstado_geral() + "\"");
if(!veiculoMODEL.getChassi().equals(""))
builder.append(" AND chassi_veiculo = \"" + veiculoMODEL.getChassi() + "\" ");
if(!veiculoMODEL.getRegiao_entrega().equals(""))
builder.append(" AND regiao_entrega_veiculo = \"" + veiculoMODEL.getRegiao_entrega() + "\" ");
if(!veiculoMODEL.getPlaca().equals(""))
builder.append(" AND placa_veiculo = \"" + veiculoMODEL.getPlaca() + "\" ");
return builder.toString();
}
// método para gerar lista de todos os elementos da tabela veiculos
public List< VeiculoMODEL > getLista(VeiculoMODEL veiculoMODEL) throws SQLException, ClassNotFoundException {
List< VeiculoMODEL > lista = new ArrayList< VeiculoMODEL >();
Connection connection = super.conectar();
Statement stm = connection.createStatement();
ResultSet rs = stm.executeQuery(createQuery(veiculoMODEL));
while ( rs.next() ) {
VeiculoMODEL veiculo = new VeiculoMODEL();
veiculoMODEL.setId( rs.getInt( "id" ) );
veiculoMODEL.setMarca( rs.getString( "marca" ) );
veiculoMODEL.setModelo( rs.getString( "modelo" ) );
veiculoMODEL.setAno( rs.getInt( "ano" ) );
veiculoMODEL.setPlaca( rs.getString( "placa" ) );
veiculoMODEL.setCategoria( rs.getString( "categoria" ) );
veiculoMODEL.setChassi( rs.getString( "chassi" ) );
veiculoMODEL.setEstado_geral( rs.getString( "estado_geral" ) );
veiculoMODEL.setRegiao_entrega( rs.getString( "regiao_entrega" ) );
veiculoMODEL.setTipo_mercadoria( rs.getString( "tipo_mercadoria" ) );
veiculoMODEL.setCapacidade( rs.getDouble( "capacidade" ) );
lista.add(veiculo);
}
rs.close();
stm.close();
super.desconectar( connection );
return lista;
} // fim do método getListaAll
} // fim da classe[/code]
[code]package br.com.transportesmaster.service;
import java.sql.SQLException;
import java.util.List;
import br.com.transportesmaster.dao.VeiculoDAO;
import br.com.transportesmaster.dto.VeiculoDTO;
import br.com.transportesmaster.model.VeiculoMODEL;
public class VeiculoSERVICE {
public void incluirVeiculo( VeiculoDTO veiculoDTO ) throws SQLException, ClassNotFoundException {
VeiculoDAO veiculoDAO = new VeiculoDAO();
VeiculoMODEL veiculoMODEL = carregar_dados( veiculoDTO );
veiculoDAO.incluirVeiculo( veiculoMODEL );
}
public void editarVeiculo( VeiculoDTO veiculoDTO ) throws SQLException, ClassNotFoundException {
VeiculoDAO veiculoDAO = new VeiculoDAO();
VeiculoMODEL veiculoMODEL = carregar_dados( veiculoDTO );
veiculoDAO.editarVeiculo( veiculoMODEL );
}
public void deletarVeiculo(VeiculoDTO veiculoDTO) throws ClassNotFoundException, SQLException {
VeiculoDAO veiculoDAO = new VeiculoDAO();
VeiculoMODEL veiculoMODEL = carregar_dados( veiculoDTO );
veiculoDAO.deletarVeiculo( veiculoMODEL );
}
public List< VeiculoMODEL > getLista(VeiculoDTO veiculoDTO) throws SQLException, ClassNotFoundException {
VeiculoMODEL veiculoMODEL = carregar_dados(veiculoDTO);
return new VeiculoDAO().getLista(veiculoMODEL);
}
private VeiculoMODEL carregar_dados(VeiculoDTO veiculoDTO) {
VeiculoMODEL veiculoMODEL = new VeiculoMODEL();
veiculoMODEL.setId(veiculoDTO.getId());
veiculoMODEL.setMarca(veiculoDTO.getMarca());
veiculoMODEL.setModelo(veiculoDTO.getModelo());
veiculoMODEL.setCategoria(veiculoDTO.getCategoria());
veiculoMODEL.setPlaca(veiculoDTO.getPlaca());
veiculoMODEL.setAno(veiculoDTO.getAno());
veiculoMODEL.setChassi(veiculoDTO.getChassi());
veiculoMODEL.setEstado_geral(veiculoDTO.getEstado_geral());
veiculoMODEL.setRegiao_entrega(veiculoDTO.getRegiao_entrega());
veiculoMODEL.setTipo_mercadoria(veiculoDTO.getTipo_mercadoria());
veiculoMODEL.setCapacidade(veiculoDTO.getCapacidade());
return veiculoMODEL;
}
}[/code]
[code]package br.com.transportesmaster.model;
public class VeiculoMODEL {
private int id;
private String modelo;
private String marca;
private String categoria;
private int ano;
private String placa;
private String chassi;
private String estado_geral;
private String regiao_entrega;
private String tipo_mercadoria;
private double capacidade;
public VeiculoMODEL() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getCategoria() {
return categoria;
}
public void setCategoria(String categoria) {
this.categoria = categoria;
}
public int getAno() {
return ano;
}
public void setAno(int ano) {
this.ano = ano;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
public String getChassi() {
return chassi;
}
public void setChassi(String chassi) {
this.chassi = chassi;
}
public String getEstado_geral() {
return estado_geral;
}
public void setEstado_geral(String estadoGeral) {
estado_geral = estadoGeral;
}
public String getRegiao_entrega() {
return regiao_entrega;
}
public void setRegiao_entrega(String regiaoEntrega) {
regiao_entrega = regiaoEntrega;
}
public String getTipo_mercadoria() {
return tipo_mercadoria;
}
public void setTipo_mercadoria(String tipoMercadoria) {
tipo_mercadoria = tipoMercadoria;
}
public double getCapacidade() {
return capacidade;
}
public void setCapacidade(double capacidade) {
this.capacidade = capacidade;
}
}[/code]
[code]package br.com.transportesmaster.dto;
public class VeiculoDTO {
private int id;
private String modelo;
private String marca;
private String categoria;
private int ano;
private String placa;
private String chassi;
private String estado_geral;
private String regiao_entrega;
private String tipo_mercadoria;
private double capacidade;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getCategoria() {
return categoria;
}
public void setCategoria(String categoria) {
this.categoria = categoria;
}
public int getAno() {
return ano;
}
public void setAno(int ano) {
this.ano = ano;
}
public String getChassi() {
return chassi;
}
public void setChassi(String chassi) {
this.chassi = chassi;
}
public String getEstado_geral() {
return estado_geral;
}
public void setEstado_geral(String estadoGeral) {
estado_geral = estadoGeral;
}
public String getRegiao_entrega() {
return regiao_entrega;
}
public void setRegiao_entrega(String regiaoEntrega) {
regiao_entrega = regiaoEntrega;
}
public String getTipo_mercadoria() {
return tipo_mercadoria;
}
public void setTipo_mercadoria(String tipoMercadoria) {
tipo_mercadoria = tipoMercadoria;
}
public double getCapacidade() {
return capacidade;
}
public void setCapacidade(double capacidade) {
this.capacidade = capacidade;
}
public void setPlaca(String placa) {
this.placa = placa;
}
public String getPlaca() {
return placa;
}
}[/code]
Bom pessoal…
minha 1 duvida é que nessa tela de listagem a lista não é preenchida no carregamento da página (isso é intensonal), pois ela deve ser preenchida de acordo com uma pesquisa.
bom minha duvida é, como eu faço para recarregar a pagina após a consulta com a tabela ja preenchida com os veiculo encontrados na pesquisa.
Eu tenho que colocar a lista na sessão? qual a melhor pratica?
a segunda duvida é…
como vcs podem ver, eu estou utilizando o design pattern (ou tentando usar) DTO (Data Transfer Object).
Minha duvida e se eu devo colocar todos meus objetos dto na sessão ou trata-los direto no servlet de controle.
Ah, gostaria tbm que me mostrassem o procedimento de colocar os objetos na sessão, pois ainda estou apanhando com web.
Estou utilizando JSP e Servlet puro, sem nenhuma framework.
Obrigado pessoal!