lógica para inserir dados

2 respostas
E

Ola,

Estou fazendo o seguinte, PARA CADA 1 INSERÇAO NA TABELA PAI (INFO), FAZ 2 INSERÇOES NA TABELA FILHO (ADDINFO)
OU SEJA,
±-------±--------+
|pai |filho |
|--------|--------- |
|1 |1 |
|1 |2 |
|2 |3 |
|2 |4 |
±-------±--------+

O metodo esta assim:

public static void populateDatabase(int n){
      // n é meu parametro de entrada, a qtd de insercoes que serao feitas
        int x= n*2;
        for (int i=1;i<=n;i++){
            //como nao é mais autoincremento, insere a variavel i do laço.
            String sql =
            "INSERT INTO INFO (COD,NAME,DATA,VALUE,ANSWER) VALUES ("+ i +",'DAN MARTINELLI',CURDATE(),100,1)";
       
        try{
            Statement st = conn.createStatement();
            st.execute(sql);
                   
        }catch (SQLException e){
            System.err.println(e.getMessage());
            System.err.println(e.getStackTrace());
        }
   
   
        for (int a=1;a<=x;a=a+2){
           
            //como nao é mais autoincremento, insere a variavel a do laço e i da tabela pai.
            String sql2 =
            "INSERT INTO ADDINFO (CODADD,COD,NAME,DATA,VALUE,ANSWER) VALUES ("+a+","+i+",'MARGARET CONORS',CURDATE(),100,1)";
            try{
                Statement st = conn.createStatement();
                st.execute(sql2);
                       
            }catch (SQLException e){
                System.err.println(e.getMessage());
                System.err.println(e.getStackTrace());
            }
             
            int b = a+1;
            String sql3 =
                "INSERT INTO ADDINFO (CODADD,COD,NAME,DATA,VALUE,ANSWER) VALUES ("+ b +","+ i +",'JULY CONORS',CURDATE(),100,1)";
   
            try{
                Statement st = conn.createStatement();
                st.execute(sql3);
                       
            }catch (SQLException e){
                System.err.println(e.getMessage());
                System.err.println(e.getStackTrace());
            }
        }//fecha for do filho
      }//fecha for do pai
    }//fecha o metodo

Qunado executa entrando com apenas registro (n=1) ele funciona mas quando entra com mais de 1 ele da erro de entrada duplicada…

Alguem poderia me ajudar na logica para cada 1 pai , insere 2 filhos.

Muito Muito Obrigado

2 Respostas

E

Ola,

Estou fazendo o seguinte, PARA CADA 1 INSERÇAO NA TABELA PAI (INFO), FAZ 2 INSERÇOES NA TABELA FILHO (ADDINFO)
OU SEJA,
±-------±--------+
|pai |filho |
|--------|--------- |
|1 |1 |
|1 |2 |
|2 |3 |
|2 |4 |
±-------±--------+

O metodo esta assim:

public static void populateDatabase(int n){
      // n é meu parametro de entrada, a qtd de insercoes que serao feitas
        int x= n*2;
        for (int i=1;i<=n;i++){
            //como nao é mais autoincremento, insere a variavel i do laço.
            String sql =
            "INSERT INTO INFO (COD,NAME,DATA,VALUE,ANSWER) VALUES ("+ i +",'DAN MARTINELLI',CURDATE(),100,1)";
       
        try{
            Statement st = conn.createStatement();
            st.execute(sql);
                   
        }catch (SQLException e){
            System.err.println(e.getMessage());
            System.err.println(e.getStackTrace());
        }
   
   
        for (int a=1;a<=x;a=a+2){
           
            //como nao é mais autoincremento, insere a variavel a do laço e i da tabela pai.
            String sql2 =
            "INSERT INTO ADDINFO (CODADD,COD,NAME,DATA,VALUE,ANSWER) VALUES ("+a+","+i+",'MARGARET CONORS',CURDATE(),100,1)";
            try{
                Statement st = conn.createStatement();
                st.execute(sql2);
                       
            }catch (SQLException e){
                System.err.println(e.getMessage());
                System.err.println(e.getStackTrace());
            }
             
            int b = a+1;
            String sql3 =
                "INSERT INTO ADDINFO (CODADD,COD,NAME,DATA,VALUE,ANSWER) VALUES ("+ b +","+ i +",'JULY CONORS',CURDATE(),100,1)";
   
            try{
                Statement st = conn.createStatement();
                st.execute(sql3);
                       
            }catch (SQLException e){
                System.err.println(e.getMessage());
                System.err.println(e.getStackTrace());
            }
        }//fecha for do filho
      }//fecha for do pai
    }//fecha o metodo

Qunado executa entrando com apenas registro (n=1) ele funciona mas quando entra com mais de 1 ele da erro de entrada duplicada…

Alguem poderia me ajudar na logica para cada 1 pai , insere 2 filhos.

Muito Muito Obrigado

I

Edita seu post ae pra ficar entre as tags [.CODE][./CODE] Pq ta dificil de ler

Criado 5 de setembro de 2006
Ultima resposta 5 de set. de 2006
Respostas 2
Participantes 2