Tenho um aplicação onde cadastro produto, cliente, marca, categoria, pedido etc. Gostaria de saber como fazer para cadastrar um produto, já que o mesmo possui informações das classes marca e categoria. Tenhos classes DAO categoriaDao, marcaDao, produtoDao, clienteDao etc. classes JavaBean cadastroClienteJB, cadastroProdutoJB, cadastroMarcaJB, cadastroCategoriaJB.
Como fazer para inserir um select no jsp, resgatando do banco informações referente a marca e categoria para que possa cadastrar o produto ?
Vou colocar o cadastro do Cliente .jsp para alguém analisar e ver como estou fazendo e assim poder me ajudar no cadastro do produto.
<jsp:useBean id="cadastroClienteJB" class="br.com.PrjDistribuidora.JB.cadastroClienteJB" scope="request"/>
<jsp:setProperty name="cadastroClienteJB" property="*"/>
<jsp:setProperty name="cadastroClienteJB" property="page" value="${pageContext}"/>
<jsp:getProperty name="cadastroClienteJB" property="execute"/>
<!--chamada da taglib-->
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<script src="eventos.js"></script>
<head>
<title>Cadastro Clientes</title>
</head>
<form action="cadastroCliente.jsp" method="get">
<input type="hidden" name="op"/>
Nome: <input type="text" name="nomeCliente" value="${cadastroClienteJB.nomeCliente}"/>
Email: <input type="text" name="emailCliente" value="${cadastroClienteJB.emailCliente}"/>
Tel: <input type="text" name="telCliente" value="${cadastroClienteJB.telCliente}"/>
Cpf: <input type="text" name="cpfCliente" value="${cadastroClienteJB.cpfCliente}"/>
<input type="hidden" name="cod_Cliente" value="${cadastroClienteJB.cod_Cliente}"/>
<c:choose>
<c:when test="${cadastroClienteJB.altera eq 's'}">
<input type="button" name="alt" value="Alterar" onclick="setOp('alterar')"/>
</c:when>
<c:otherwise>
<input type="button" name="cad" value="Cadastrar" onclick="setOp('cadastro')"/>
</c:otherwise>
</c:choose>
<br>
Clientes:
<br>
<!--taglib para listar todos os clientes-->
<c:forEach var = "item" items="${cadastroClienteJB.listaCliente}">
<!-- checkBox para deletar o cliente -->
<input type="checkbox" value="${item.cod_Cliente}" name ="chkCliente">
<!-- Link para alterar o cliente. Nesse temos o parâmetro altera que será setado como sim quando clicado -->
<A href="cadastroCliente.jsp?cod_Cliente=${item.cod_Cliente}&altera=s"> ${item.nome_Cliente} </A> <br>
</c:forEach>
<input type="button" name="del" value="Delete" onclick="setOp('delete')"/>
</form>
<A href="menuAdm.jsp">Menu</A>
<body>
</body>
</html>
Agora o cadastroClienteJB da classe javabean
package br.com.PrjDistribuidora.JB;
import java.util.ArrayList;
import java.util.List;
import com.mysql.jdbc.Connection;
import br.com.PrjDistribuidora.Dao.CategoriaDao;
import br.com.PrjDistribuidora.Dao.MarcaDao;
import br.com.PrjDistribuidora.Dao.ProdutoDao;
import br.com.PrjDistribuidora.JDBC.ConnectionFactory;
import br.com.PrjDistribuidora.Modelo.Produto;
import br.com.PrjDistribuidora.Modelo.Marca;
import br.com.PrjDistribuidora.Modelo.Categoria;
public class cadastroProdutoJB extends BeanBase {
private int cod_Produto;
private int tbMarca_codMarca;
private int tbCategoria_codCategoria;
private String descProduto;
private double valorProduto;
private int qtdProduto;
private Produto produto;
private Marca marca;
private Categoria categoria;
private String altera;
/**
* Lista de alunos
*/
private List<Produto> listaProduto = new ArrayList<Produto>();
/**
* Método que é executado quando submetermos a página
*/
public void pageLoad() throws Exception {
super.pageLoad();
try {
ProdutoDao dao = new ProdutoDao();
// Retorna a lista de alunos
listaProduto = dao.getAllProduto();
if (cod_Produto != 0) {
produto = dao.getProduto(cod_Produto);
tbMarca_codMarca = produto.getMarca_codMarca();
tbCategoria_codCategoria = produto.getCategoria_codCategoria();
descProduto = produto.getDesc_Produto();
valorProduto = produto.getValor_Produto();
qtdProduto = produto.getQtd_Produto();
cod_Produto = produto.getCod_Produto();
}
} catch (Exception e) {
// TODO: handle exception
} finally {
ConnectionFactory.getConnection().close();
}
}
public void alterar() throws Exception {
try {
Produto produto = new Produto();
produto.setCod_Produto(cod_Produto);
produto.setMarca_codMarca(tbMarca_codMarca);
produto.setCategoria_codCategoria(tbCategoria_codCategoria);
produto.setDesc_Produto(descProduto);
produto.setValor_Produto(valorProduto);
produto.setQtd_Produto(qtdProduto);
ProdutoDao dao = new ProdutoDao();
dao.alteraProduto(produto);
limpaCampo();
} catch (Exception e) {
// TODO: handle exception
} finally {
ConnectionFactory.getConnection().close();
}
}
public void delete() throws NumberFormatException, Exception {
try {
String[] produtos = request.getParameterValues("chkProduto");
ProdutoDao dao = new ProdutoDao();
for (int i = 0; i < produtos.length; i++) {
dao.deleteProduto(Integer.parseInt(produtos[i]));
}
} catch (Exception e) {
// TODO: handle exception
} finally {
ConnectionFactory.getConnection().close();
}
}
private void limpaCampo(){
tbMarca_codMarca = 0;
tbCategoria_codCategoria = 0;
descProduto = "";
valorProduto = 0;
qtdProduto = 0;
}
public void cadastro() throws Exception {
try {
// seta uma aluno
Produto produto = new Produto();
produto.setMarca_codMarca(tbMarca_codMarca);
produto.setCategoria_codCategoria(tbCategoria_codCategoria);
produto.setDesc_Produto(descProduto);
produto.setValor_Produto(valorProduto);
produto.setQtd_Produto(qtdProduto);
// cadastra um aluno no banco
ProdutoDao dao = new ProdutoDao();
dao.cadastrarProduto(produto);
limpaCampo();
} catch (Exception e) {
// TODO: handle exception
} finally {
ConnectionFactory.getConnection().close();
}
}
public String getAltera() {
return altera;
}
public void setAltera(String altera) {
this.altera = altera;
}
public int getCod_Produto() {
return cod_Produto;
}
public void setCod_Produto(int cod_Produto) {
this.cod_Produto = cod_Produto;
}
public int getTbMarca_codMarca() {
return tbMarca_codMarca;
}
public void setTbMarca_codMarca(int tbMarca_codMarca) {
this.tbMarca_codMarca = tbMarca_codMarca;
}
public int getTbCategoria_codCategoria() {
return tbCategoria_codCategoria;
}
public void setTbCategoria_codCategoria(int tbCategoria_codCategoria) {
this.tbCategoria_codCategoria = tbCategoria_codCategoria;
}
public String getDescProduto() {
return descProduto;
}
public void setDescProduto(String descProduto) {
this.descProduto = descProduto;
}
public double getValorProduto() {
return valorProduto;
}
public void setValorProduto(double valorProduto) {
this.valorProduto = valorProduto;
}
public int getQtdProduto() {
return qtdProduto;
}
public void setQtdProduto(int qtdProduto) {
this.qtdProduto = qtdProduto;
}
public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
public List<Produto> getListaProduto() {
return listaProduto;
}
public void setListaProduto(List<Produto> listaProduto) {
this.listaProduto = listaProduto;
}
public Marca getMarca() {
return marca;
}
public void setMarca(Marca marca) {
this.marca = marca;
}
public Categoria getCategoria() {
return categoria;
}
public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}
}
Agora classe DAO ClienteDao
package br.com.PrjDistribuidora.Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import br.com.PrjDistribuidora.JDBC.ConnectionFactory;
import br.com.PrjDistribuidora.Modelo.Cliente;;
public class ClienteDao {
public Connection con;
public ClienteDao() {
try {
con = ConnectionFactory.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void cadastrarCliente(Cliente cliente) throws SQLException {
String sql = "INSERT INTO tbCliente(nomeCliente, emailCliente, telCliente, cpfCliente) VALUES (?,?,?,?)";
PreparedStatement pStmt = null;
try {
pStmt = con.prepareStatement(sql);
pStmt.setString(1, cliente.getNome_Cliente());
pStmt.setString(2, cliente.getEmail_Cliente());
pStmt.setString(3, cliente.getTel_Cliente());
pStmt.setString(4, cliente.getCpf_Cliente());
pStmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
pStmt.close();
}
}
/**
* Retorna um aluno cujo código foi passado por parâmetro *
*
* @param cod -
* codigo do aluno passado por Parâmetro
* @return
* @throws SQLException
*/
public Cliente getCliente(int cod) throws SQLException {
PreparedStatement stmt = this.con
.prepareStatement("select * from tbCliente where codCliente= "
+ cod);
ResultSet rs = stmt.executeQuery();
// criando o objeto aluno
Cliente cliente = new Cliente();
if (rs.next()) {
cliente.setNome_Cliente(rs.getString("nomeCliente"));
cliente.setEmail_Cliente(rs.getString("emailCliente"));
cliente.setTel_Cliente(rs.getString("telCliente"));
cliente.setCpf_Cliente(rs.getString("cpfCliente"));
cliente.setCod_Cliente(rs.getInt("codCliente"));
}
rs.close();
stmt.close();
return cliente;
}
public List<Cliente> getAllCliente() throws SQLException {
String sql = "select * from tbCliente";
PreparedStatement pStmt = null;
List<Cliente> clientes = new ArrayList<Cliente>();
ResultSet rs = null;
try {
pStmt = con.prepareStatement(sql);
rs = pStmt.executeQuery();
while (rs.next()) {
Cliente cliente = new Cliente();
cliente.setNome_Cliente(rs.getString("nomeCliente"));
cliente.setEmail_Cliente(rs.getString("emailCliente"));
cliente.setTel_Cliente(rs.getString("telCliente"));
cliente.setCpf_Cliente(rs.getString("cpfCliente"));
cliente.setCod_Cliente(rs.getInt("codCliente"));
clientes.add(cliente);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
rs.close();
pStmt.close();
}
return clientes;
}
public void alteraCliente(Cliente cliente) throws Exception {
// prepared statement para inserção
PreparedStatement stmt = this.con
.prepareStatement("update tbCliente set nomeCliente=?,emailCliente=?,telCliente=?,cpfCliente=? where codCliente=?"); //
stmt.setString(1, cliente.getNome_Cliente());
stmt.setString(2, cliente.getEmail_Cliente());
stmt.setString(3, cliente.getTel_Cliente());
stmt.setString(4, cliente.getCpf_Cliente());
stmt.setInt(5, cliente.getCod_Cliente());
// executa
stmt.executeUpdate();
stmt.close();
}
public void deleteCliente(int cod) throws Exception {
// prepared statement para exclusão
PreparedStatement stmt = this.con
.prepareStatement("delete from tbCliente where codCliente=" + cod);
// executa
stmt.execute();
stmt.close();
}
}
Seguindo essa estrutura, como faço para cadastrar o produto sendo que utilizarei dois select’s que pegarão informações do banco, um select para marca e outro para categoria.