Oi pessoal, estou fazendo um sisteminha da faculdade de uma transportadora.
bom tenho duas duvidas cruéis...
mas primeiro meu código:
<!-- tela de listagem de veiculos -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:import url="/cabecalho.jsp" />
<form id="formconsultaveiculo" name="formconsultaveiculo" method="post">
<center>
<table>
<tr>
<td colspan="4"
style="background-color: navy; color: white; text-align: center; font-size: medium; font-weight: bold">
Consulta de Veiculos</td>
</tr>
<tr>
<td style="font-size: x-small; color: black">Modelo:</td>
<td><input type="text" style="font-size: x-small;" name="tmodelo"
id="tmodelo"></td>
<td style="font-size: x-small; color: black">Estado Geral:</td>
<td><select style="font-size: x-small; width: 145px"
name="sestadogeral" id="sestadogeral">
<option id="opt_estado_geral0" label="Selecione">Selecione</option>
<option id="opt_estado_geral1" label="Novo">Novo</option>
<option id="opt_estado_geral2" label="Bom">Bom</option>
<option id="opt_estado_geral3" label="Regular">Regular</option>
<option id="opt_estado_geral4" label="Ruim">Ruim</option>
</select></td>
</tr>
<tr>
<td style="font-size: x-small; color: black">Chassi:</td>
<td><input type="text" style="font-size: x-small;" name="tchassi"
id="tchassi"></td>
<td style="font-size: x-small; color: black">Regiao de Entrega:</td>
<td><input type="text" style="font-size: x-small;"
name="tregiaoentrega" id="tregiaoentrega"></td>
</tr>
<tr>
<td style="font-size: x-small; color: black">Placa:</td>
<td><input type="text" style="font-size: x-small;" name="tplaca"
id="tplaca"></td>
<td colspan="2" style="text-align: right"><input type="submit"
style="border-color: darkblue; border-style: ridge; width: 70px;"
value="Pesquisar" id="bpesquisar"> <input type="reset"
style="border-color: darkblue; border-style: ridge; width: 70px;"
value="Limpar" id="blimpar"></td>
</tr>
</table>
</center>
<hr />
<center>
<table>
<tr>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Id</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Chassi</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Marca</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Modelo</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Categoria</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Ano</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Placa</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Estado Geral</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Regiao de Entrega</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Tipo de Mercadoria</td>
<td
style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
Capacidade de Carga</td>
</tr>
<c:forEach var="veiculo" items="${veiculos.lista}">
<tr>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.id}"/></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:url value="telaedicaoveiculo.jsp" var="editar">
<c:param name="id" value="${veiculo.id}" />
<c:param name="chassi" value="${veiculo.chassi}" />
<c:param name="marca" value="${veiculo.marca}" />
<c:param name="modelo" value="${veiculo.modelo}"/>
<c:param name="categoria" value="${veiculo.categoria}" />
<c:param name="ano" value="${veiculo.ano}" />
<c:param name="placa" value="${veiculo.placa}" />
<c:param name="estado_geral" value="${veiculo.estado_geral}" />
<c:param name="regiao_entrega" value="${veiculo.regiao_entrega}" />
<c:param name="tipo_mercadoria" value="${veiculo.tipo_mercadoria}" />
<c:param name="capacidade" value="${veiculo.capacidade}" />
</c:url>
<a href="${editar}"><c:out value="${veiculo.chassi}"/></a></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.marca}"/></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.modelo}"/></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.categoria}"/></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.ano}"/></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.placa}"></c:out></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.estado_geral}"/></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.regiao_entrega}"/></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.tipo_mercadoria}"/></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:out value="${veiculo.capacidade}"/></td>
<td
style="color: black; text-align: center; font-size: small;">
<c:url value="excluirveiculo.do" var="deletar">
<c:param name="id" value="${veiculo.id}" />
</c:url>
<a href="${deletar}">Deletar</a>
</td>
</tr>
</c:forEach>
</table>
</center>
</form>
<br/>
<center><a href="telainclusaoveiculo.jsp"
style="border-color: darkblue; border-style: ridge; width: 100px; font-size:15; font-family: sans-serif"
id="lnovo">NOVO</a></center>
<c:import url="/rodape.jsp" />
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
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;
}
}
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;
}
}
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;
}
}
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!