1 Módulo – Sobre JDBC 3 Capítulo
Olá meus amigos, sejam bem vindos ao nosso serceiro capítulo do 1 módulo do curso de Java com JBDC.
Executar o CallableStatement
- Depois de definir os valores dos parâmetros que precisam ser definidos, você está pronto para executar o CallableStatement. Aqui está como isso é feito:
- O executeQuery ()método é usado se o procedimento armazenado retorna um ResultSet.
- Se o procedimento armazenado apenas atualiza o banco de dados, você pode chamar o executeUpdate ()método em vez disso, como este:
ResultSet – contém o conjunto de dados retornado por uma consulta SQL. ResultSet possui método para recuperar os dados resultantes de uma consulta, além de retornar os metadados da consulta.
Para iterar o ResultSet você usa seu next() método. O next() método retorna true se o ResultSet tem um próximo disco, e move o ResultSet para apontar para o próximo registro. Se não houvesse mais registros, next() retorna falso, e você já não pode. Uma vez que o next() método retornou false, você não deve chamar mais. Fazer isso pode resultar em uma exceção.
Aqui está um exemplo de iteração um ResultSet usando o next() método:
- Como você pode ver, o next()método é realmente chamado antes do primeiro registro é acessado. Isso significa, que o ResultSetcomeça apontando antes do primeiro registro. Uma vez que next() foi chamado uma vez, ele aponta para o primeiro registro.
- Da mesma forma, quando next()é chamado e retorna false, o ResultSeté realmente apontar após o último registro.
- Você não pode obter o número de linhas em um ResultSet, exceto se você iterar todo o caminho com ele e contar as linhas. No entanto, se o ResultSeté forward-only, você não pode se mover para trás depois através dele. Mesmo que você pode se mover para trás, seria uma forma lenta de contar as linhas no ResultSet . Está melhor estruturar seu código para que você não precisa saber o número de registros antes do tempo.
Batch Updates
A atualização em lote é um lote de atualizações agrupadas e enviadas para o banco de dados em um “lote”, ao invés de enviar as atualizações de um por um.
O envio de um lote de atualizações para o banco de dados de uma só vez, é mais rápido do que enviá-los um por um, à espera de cada um para terminar. Há menos tráfego de rede envolvida no envio de um lote de atualizações (apenas 1 ida e volta), o banco de dados pode ser capaz de executar algumas das atualizações em paralelo. A velocidade se comparado a executar as atualizações de um por um, pode ser bastante grande.
- Há duas maneiras para executar atualizações em lote:
- Você pode batch tanto SQL inserções, atualizações e exclusões. Não faz sentido para lote instruções select.
1.Usando uma Declaração
2.Usando um PreparedStatement
Declaração Batch Updates
- Você pode usar uma Declaração de objeto para executar atualizações em lote. Você pode fazer isso usando o addBatch ()e executeBatch ()métodos. Aqui está um exemplo:
- Primeiro você adicionar as instruções SQL a serem executados no lote, utilizando a ) addBatch ( método.
- Depois de executar as instruções SQL usando o executeBatch (). O int []array retornado pela executeBatch () método é um array de int dizendo quantos registros foram afetados por cada instrução SQL executada no lote.
Batch PreparedStatement Updates
- Você também pode usar um PreparedStatementobjeto para executar atualizações em lote. O PreparedStatementpermite que você reutilize a mesma instrução SQL, e apenas inserir novos parâmetros para ele, para cada atualização de executar. Aqui está um exemplo:
- Primeiro um PreparedStatementé criado a partir de uma instrução SQL com pontos de interrogação em, para mostrar onde os valores dos parâmetros devem ser inserido no SQL.
- Em segundo lugar, cada conjunto de valores dos parâmetros são inseridos no preparedStatement, e o addBatch() método é chamado. Isso adiciona os valores dos parâmetros para o lote internamente. Agora você pode adicionar outro conjunto de valores, a ser inserido na instrução SQL. Cada conjunto de parâmetros são inseridos na SQL e executada separadamente, uma vez que o lote completo é enviado para a base de dados.
- Em terceiro lugar, o executeBatch()método é chamado, que executa todas as atualizações em lote. A instrução SQL mais os conjuntos de parâmetros são enviados para o banco de dados de uma só vez. O int []array retornado pela executeBatch() método é um array de int dizendo quantos registros foram afetados por cada instrução SQL executada no lote.
Atenção galera, não esqueçam de comentar… Estarei respondendo todos! Abraços…