Desculpem, encher a pacência de vocês, porem preciso de uma ajuda, pois to enforcado kkkkkk
Eu sou novo na área de Programação, ainda mais em Java, e pior ainda em Web, porém eu tento, a aplicalção q tento desenvolver , servirá para fazer um pedido : ela tem os CRUDS e tal de cliente, funcionário,produto etc …
A arquitetura e a seguinte, eu tento fazer no padrão MVC “sem framworks” então ficou assim : JSP - Servlet - Faced - DAO é JDBC mesmo conectando no PostGreSql
porém estou com dúvidas de como fazer a parte do pedido.
Pois no Pedido eu irei amarrar a ele os itens do pedido, e para inserir os itens do pedido eu preciso saber o id do pedido, eu queria fazer isso dentro de uma transaction, já vi o esquema da transaction eu estava com a seguinte idéia:
public void inserir(DomainObject domainObject) {
Pedido pedido = (Pedido)domainObject;
conn = Conexao.getConnection();
conn.setAutoCommit(false);
//Criando a string com sql a ser executada
String sql = "insert into pedido( cli_id , vnd_id , " +
"fpg_id , stt_id , " +
"pdd_qtd_parcelas, pdd_vlr_pedido , " +
"pdd_vlr_desconto, pdd_vlr_total , " +
"pdd_vlr_parcelas) " +
"values( ?, ?, ?, ?, ?, ?, ?, ?, ? ) RETURNING id";
//Tratando a sql a ser executada
PreparedStatement pst = conn.prepareStatement( sql );
// Este valor é resgatado da classe domain object
pst.setInt( 1, pedido.getCliente().getId() );
pst.setInt( 2, pedido.getVendedor().getId() );
pst.setInt( 3, pedido.getFrm_pgto().getId() );
pst.setInt( 4, pedido.getStt_id() );
pst.setInt( 5, pedido.getPdd_QtdParcelas() );
pst.setDouble( 6, pedido.getPdd_VlrPedido() );
pst.setDouble( 7, pedido.getPdd_VlrDesconto() );
pst.setDouble( 8, pedido.getPdd_VlrTotal() );
pst.setDouble( 9, pedido.getPdd_VlrParcela() );
ResultSet rs = pst.executeQuery();
sql = "insert into pedido_itens( pdd_id , prd_id , " +
"pit_qtd "+
"values( ?, ?, ?)";
//Tratando a sql a ser executada
pst = conn.prepareStatement( sql );
// Este valor é resgatado da classe domain object
for (ItensPedido itens : pedido.getItensPedido()) {
pst.setInt( 1, rs.getInt("pdd_id"));
pst.setInt( 2, itens.getProduto().getId());
pst.setInt( 3, itens.getIpd_quantidade());
pst.executeUpdate();
}
conn.commit();
conn.setAutoCommit(true);
}
Gostaria da opinião de vcs por favor, detalhe eu ainda não consegui testa isso que fiz porém eu queria saber se há maneiras mais concistentes e seguras para tal procedimento.
Desde Já agradeço a atenção…