Insert MySql

3 respostas
E

Olá pessoal, creio que esta dúvida seja mais em relaçao ao banco mySql, mas como meu conhecimento ainda é basico, de repente seja com java.

Minha dúvida é: Preciso inserir 1 linha de registro na tabela PAI, e varias linha de registro na tabela filha, relacionada com a pai.

Neste caso seria:

TABELA_CABEÇALHO_PEDIDO( uma linha);
TABELA_ITENS_PEDIDO(para cada linha dos itens do pedido, seria associado com o pedido na tabela pai).

Imaginei que uma Trigger resolva isso!

Aguardo ajuda!

3 Respostas

ThalitaPinheiro

Hey cara,

Tem várias formas de fazer isso…

O que vc ta usando no projeto? Hibernate? JPA? Java com durepox? hehe

Coloca um pouco de codigo aqui e vamos desenvolvendo a ideia!

Por trigger não creio que seja o melhor cenário. :wink:

E

Acho qie é Java com Durepox com JDBC, mesmo… hehehe! meu conhecimento é basico.

Mas assim o que estou fazer é um simples insert na tabela pai. Na filha ainda não fiz pois to quebrando a cabeça como inserir(o pedido pai nos itens) os itens.

Segue o código de inserção! Essa inserçao está funciondo


public boolean inseriPedidoCab(Consignacao consig, ClienteCNPJ cliente) {

// no insert nao tem o codigo do pedido, porque est’a auto_increment

String sqlInsert = insert into pedcconsig (codcliente, vltotal,vldesc,vlpagar,dtsaida) values (?,?,?,?,sysdate());

PreparedStatement stmt = null;

this.conexao = ConexaoBanco.fabricaConexao();
try {
        stmt = (PreparedStatement) conexao.prepareStatement(sqlInsert);
        stmt.setInt(1, cliente.getCodCliente());
        stmt.setDouble(2, consig.getVlTotal());
        stmt.setDouble(3, consig.getVlDesconto());
        stmt.setDouble(4, consig.getVlTotalPagar());
        stmt.execute();
        JOptionPane.showMessageDialog(null, "  Consignação efetuada com sucesso!!!");
        return true;

    } catch (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException e2) {
        JOptionPane.showMessageDialog(null, "  Pedido já inserido!\n\n" + e2);
        return false;
    } catch (SQLException e1) {
        JOptionPane.showMessageDialog(null, "  Erro ao inserir dados!\n\n" + e1);
        return false;
    } finally {
        try {
            if (stmt != null) {
                stmt.close();
            }
            if (this.conexao != null) {
                this.conexao.close();
            }
        } catch (SQLException e2) {
            JOptionPane.showMessageDialog(null, "Erro ao fechar conexão\n\n" + e2);
        }
    }
}

********************************************************************************************8

juliomendes90

Camarada,

uma sugestão para qualquer post aqui no fórum: use sempre a tag "Code" quando for inserir algum trecho de código fonte.

Exemplo de como fica:

public void static main(String[] args) {

       // código

}

Abs,

ericclauber:
Acho qie é Java com Durepox com JDBC, mesmo... hehehe! meu conhecimento é basico.

Mas assim o que estou fazer é um simples insert na tabela pai. Na filha ainda não fiz pois to quebrando a cabeça como inserir(o pedido pai nos itens) os itens.

Segue o código de inserção! Essa inserçao está funciondo

***********************************************************************
public boolean inseriPedidoCab(Consignacao consig, ClienteCNPJ cliente) {
// no insert nao tem o codigo do pedido, porque est'a auto_increment
String sqlInsert = "insert into pedcconsig (codcliente, vltotal,vldesc,vlpagar,dtsaida) values (?,?,?,?,sysdate())";
PreparedStatement stmt = null;
this.conexao = ConexaoBanco.fabricaConexao();

try {
stmt = (PreparedStatement) conexao.prepareStatement(sqlInsert);
stmt.setInt(1, cliente.getCodCliente());
stmt.setDouble(2, consig.getVlTotal());
stmt.setDouble(3, consig.getVlDesconto());
stmt.setDouble(4, consig.getVlTotalPagar());
stmt.execute();
JOptionPane.showMessageDialog(null, " Consignação efetuada com sucesso!!!");
return true;

} catch (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException e2) {
JOptionPane.showMessageDialog(null, " Pedido já inserido!\n\n" + e2);
return false;
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, " Erro ao inserir dados!\n\n" + e1);
return false;
} finally {
try {
if (stmt != null) {
stmt.close();
}
if (this.conexao != null) {
this.conexao.close();
}
} catch (SQLException e2) {
JOptionPane.showMessageDialog(null, "Erro ao fechar conexão\n\n" + e2);
}
}
}
********************************************************************************************8

Criado 24 de janeiro de 2015
Ultima resposta 26 de jan. de 2015
Respostas 3
Participantes 3