Olá Pessoal preciso muito da ajuda de vocês. preciso salvar dados referentes a entrada de produtos em duas tabelas diferentes, uma entrada e outra itens de entrada. vou deixar meu código abaixo o esquema de como estou usando.
No cliente vou ter os dados referentes para salvar nas duas tabelas. Estou usando chave primária como Codincremental da tabela itensEntrada ela e usada como estrangeira na tabela Entrada.
Tentei com inner join não consegui para puxar os dados estou tentando usar uma especie de cabeçalho para salvar e consultar.
Preciso que todos dados do json fiquem em uma unica URL para usar no cliente.
Objeto Entrada
package objetos;
import static java.util.Collections.list;
import java.util.LinkedList;
import java.util.List;
public class IAM_Entrada {
private int codE;
private String data;
private int fornecedor;
private int funcionario;
private float valor_Nota;
private List <IAM_Itens_Entrada> itensEntrada;
public List<IAM_Itens_Entrada> getItensEntrada() {
return itensEntrada;
}
public void setItensEntrada(List<IAM_Itens_Entrada> itensEntrada) {
this.itensEntrada = itensEntrada;
}
public int getCodE() {
return codE;
}
public void setCodE(int codE) {
this.codE = codE;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public int getFornecedor() {
return fornecedor;
}
public void setFornecedor(int fornecedor) {
this.fornecedor = fornecedor;
}
public int getFuncionario() {
return funcionario;
}
public void setFuncionario(int funcionario) {
this.funcionario = funcionario;
}
public float getValor_Nota() {
return valor_Nota;
}
public void setValor_Nota(float valor_Nota) {
this.valor_Nota = valor_Nota;
}
}
Objeto Itens Entrada
/*
- To change this license header, choose License Headers in Project Properties.
- To change this template file, choose Tools | Templates
- and open the template in the editor.
*/
package objetos;
import java.util.List;
/**
*
-
@author jonh
*/
public class IAM_Itens_Entrada {private int cod_Incremetal;
private int cod_Produto;
private float valor_Unitario;
private int quantidade;private List <IAM_Itens_Entrada> itensEntrada;
public List<IAM_Itens_Entrada> getItensEntrada() {
return itensEntrada;
}public void setItensEntrada(List<IAM_Itens_Entrada> itensEntrada) {
this.itensEntrada = itensEntrada;
}public int getCod_Incremetal() {
return cod_Incremetal;
}public void setCod_Incremetal(int cod_Incremetal) {
this.cod_Incremetal = cod_Incremetal;
}public int getCod_Produto() {
return cod_Produto;
}public void setCod_Produto(int cod_Produto) {
this.cod_Produto = cod_Produto;
}public float getValor_Unitario() {
return valor_Unitario;
}public void setValor_Unitario(float valor_Unitario) {
this.valor_Unitario = valor_Unitario;
}public int getQuantidade() {
return quantidade;
}public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
}
Conexão
package utilitarios;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conexao {
final private String driver = "com.mysql.jdbc.Driver";
final private String url = "jdbc:mysql://localhost/teste";
final private String usuario = "root";
final private String senha = "";
public Connection conectar()
{
Connection conn = null;
try
{
Class.forName(driver);
conn = DriverManager.getConnection(url, usuario, senha);
}
catch(ClassNotFoundException ex)
{
ex.printStackTrace();
}
catch(SQLException ex)
{
ex.printStackTrace();
}
return conn;
}
}
Entrada DAO
package classesdao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import objetos.IAM_Entrada;
import utilitarios.Conexao;
public class IAM_EntradaDAO {
Connection conn;
public IAM_EntradaDAO() {
conn = new Conexao().conectar();
}
public void salvar(IAM_Entrada c)
{
try
{
PreparedStatement ppStmt = conn.prepareStatement("INSERT INTO entradas(codE,data,fornecedor,funcionario,valor_Nota) values(?,?,?,?,?)");
ppStmt.setInt(1, c.getCodE());
ppStmt.setString(2, c.getData());
ppStmt.setInt(3, c.getFornecedor());
ppStmt.setInt(4, c.getFuncionario());
ppStmt.setFloat(5, c.getValor_Nota());
ppStmt.execute();
}
catch(SQLException ex)
{
ex.printStackTrace();
}
}
public List<IAM_Entrada> getEntrada()
{
List<IAM_Entrada> lstG = new LinkedList<>();
try
{
PreparedStatement ppStmt = conn.prepareStatement("SELECT * FROM entradas");
ResultSet rs = ppStmt.executeQuery();
while(rs.next())
{
lstG.add(getGeladeira(rs));
}
}
catch(SQLException ex)
{
ex.printStackTrace();
}
return lstG;
}
private IAM_Entrada getGeladeira(ResultSet rs) throws SQLException
{
IAM_Entrada g = new IAM_Entrada();
g.setCodE(rs.getInt("codE"));
g.setData(rs.getString("data"));
g.setFornecedor(rs.getInt("fornecedor"));
g.setFuncionario(rs.getInt("funcionario"));
g.setValor_Nota(rs.getInt("valor_Nota"));
return g;
}
}
Dao Itens de Entrada
/*
-
To change this license header, choose License Headers in Project Properties.
-
To change this template file, choose Tools | Templates
-
and open the template in the editor.
/
package classesdao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import objetos.IAM_Entrada;
import objetos.IAM_Itens_Entrada;
import utilitarios.Conexao;
/* -
@author jonh
*/
public class IAM_Itens_EntradaDAO {Connection IAM_conn;
public IAM_Itens_EntradaDAO() {
IAM_conn = new Conexao().conectar();
}public void salvar(IAM_Itens_Entrada e)
{
try
{
PreparedStatement ppStmt = IAM_conn.prepareStatement(“INSERT INTO itens_entrada(cod_Produto, valor_Unitario, quantidade) values(?,?,?)”);ppStmt.setInt(1, e.getCod_Produto()); ppStmt.setFloat(2, e.getValor_Unitario()); ppStmt.setInt(3, e.getQuantidade()); ppStmt.execute(); } catch(SQLException ex) { ex.printStackTrace(); }
}
public List<IAM_Itens_Entrada> getIAM_Itens_Entrada()
{
List<IAM_Itens_Entrada> lstC = new LinkedList<>();
try
{
PreparedStatement ppStmt = IAM_conn.prepareStatement(“SELECT * FROM itens_entrada”);
ResultSet rs = ppStmt.executeQuery();
while(rs.next())
{
lstC.add(getIAM_Itens_Entrada(rs));
}
}
catch(SQLException ex)
{
ex.printStackTrace();
}
return lstC;
}
//Fiquei com Dúvida nessa parteprivate IAM_Itens_Entrada getIAM_Itens_Entrada(ResultSet rs) throws SQLException
{
IAM_Itens_Entrada e = new IAM_Itens_Entrada();e.setCod_Produto(rs.getInt("cod_Produto")); e.setValor_Unitario(rs.getFloat("valor_Unitario")); e.setQuantidade(rs.getInt("quantidade")); return e;
}
}
Entrada Bo
package classesbo;
import classesdao.IAM_EntradaDAO;
import java.util.List;
import objetos.IAM_Entrada;
public class IAM_EntradaBO {
IAM_EntradaDAO cDAO;
public IAM_EntradaBO() {
cDAO = new IAM_EntradaDAO();
}
public void salvar(IAM_Entrada g)
{
cDAO.salvar(g);
}
public List<IAM_Entrada> getEntrada()
{
return cDAO.getEntrada();
}
}
Itens de Entrada BO
/*
- To change this license header, choose License Headers in Project Properties.
- To change this template file, choose Tools | Templates
- and open the template in the editor.
*/
package classesbo;
import classesdao.IAM_Itens_EntradaDAO;
import java.util.List;
import objetos.IAM_Itens_Entrada;
/**
*
-
@author jonh
*/public class IAM_Itens_EntradaBO {
IAM_Itens_EntradaDAO IAMDAO;
public IAM_Itens_EntradaBO() {
IAMDAO = new IAM_Itens_EntradaDAO();
}public void salvar(IAM_Itens_Entrada e)
{
IAMDAO.salvar(e);
}public List<IAM_Itens_Entrada> getIAM_Itens_Entrada()
{
return IAMDAO.getIAM_Itens_Entrada();
}}
Estou usando Resource ela está salvando em forma individual
/*
- To change this license header, choose License Headers in Project Properties.
- To change this template file, choose Tools | Templates
- and open the template in the editor.
*/
package ws;
import classesbo.IAM_EntradaBO;
import com.google.gson.Gson;
import java.util.List;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PUT;
import objetos.IAM_Entrada;
import objetos.IAM_Itens_Entrada;
/**
-
REST Web Service
-
@author jonh
*/
@Path(“entrada”)
public class EntradaResource {@Context
private UriInfo context;/**
- Creates a new instance of GeladeiraResource
*/
public EntradaResource() {
}
/**
-
Retrieves representation of an instance of ws.EntradaResource
-
@return an instance of java.lang.String
*/
@GET
@Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
public List<IAM_Entrada> getJson() {return new IAM_EntradaBO().getEntrada();
}
/**
- PUT method for updating or creating an instance of EntradaResource
-
@param content representation for the resource
*/
@PUT
@Consumes(javax.ws.rs.core.MediaType.APPLICATION_JSON)
public void putJson(String content) {
Gson g = new Gson();
IAM_Entrada c = g.fromJson(content,IAM_Entrada.class);
System.out.println(c.getCodE()+" - “+c.getData()+” - “+c.getFornecedor()+” - “+c.getFuncionario()+” - "+c.getValor_Nota());
new IAM_EntradaBO().salvar©;
}
} - Creates a new instance of GeladeiraResource