Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Passando uma lista para inserção no banco

Olá, Bom dia !

Gostaria de passar um lista para ser inserida no banco, porém do jeito que estou fazendo, quando executo, e dou um select no banco, está tudo em branco.

public void inserir(List<Produto> lista) {

        try {

            Connection connection = ConexaoDB.getConnection();

            PreparedStatement ps = connection.prepareStatement(SQL_insere);

            for (int i = 0; i > lista.size(); i++) {

                ps.setInt(1, lista.get(i).getId());
                ps.setString(2, lista.get(i).getNome());
                ps.setString(3, lista.get(i).getDescricao());

                ps.execute();
                // Execute o statement preparado.
            }

            ps.close();
            connection.close();

Este é o jeito, e no main tenho uma lista, e passo para o inserir essa lista.

5 respostas

Marcos, tudo bem ?

Cara você tem que mandar um item de cada vez, o seu for vai ser responsável por isso, ou seja, você terá que criar um preparestatement para cada item da sua lista.

Assim ?

for (int i = 0; i > lista.size(); i++) {

                ps = connection.prepareStatement(SQL_insere);

                ps.setInt(1, lista.get(i).getId());
                ps.setString(2, lista.get(i).getNome());
                ps.setString(3, lista.get(i).getDescricao());

                ps.execute();
                // Execute o statement preparado.
                ps.close();
            }

Pois, não funcionou, engraçado, que no console não aparece nada, e como se estivesse sido executado normal.

Estou usando o H2.

solução!

Marcos, ele nem está entrando no for, você inverteu o sinal devia ser enquanto o i for menor que o tamanho da lista, corrigi isso e fala se deu certo

Nossa que vacilo ! Era isso mesmo cara, obrigado.