Dúvidas sobre executeBatch()

3 respostas
felipereisbr

Olá pessoal, tenhu uma aplicação que faz 2 inserções de uma vez só com o executeBatch(), mas o que não consigo é que ele mi retorne um numero , ou seja algo que me faça confirmar que aqueleas 2 execuções foram feitas .

tipo , quando to com com o executeUpdate(“sql”), ele me retorna um inteiro … com isso confirmo a execução:


Ex: int num =  executeUpdate(sql),;

if (num !=0)

inseriur

package faculdade.base;

import java.sql.Connection;
import java.sql.DriverManager;

import java.sql.Statement;




public class AcessoDadosFilme {

	private static Connection con;
	private static Statement stmt;
	private static Statement getStatement() throws Exception {
		
		Class.forName("org.firebirdsql.jdbc.FBDriver");
		
		con = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:D:/Downloads/Administrador/Desktop/Programação/Banco de Dados/Bancos/GUILHERME.GDB","sysdba","masterkey");
	  
	    con.setAutoCommit(false);
	    System.out.println("conectado");
	    return con.createStatement();		
	}	

	public static int[] inserirPessoa() throws Exception {
				
	stmt = getStatement();  
	stmt.addBatch("INSERT INTO cliente " +
	    	" (cli_codigo,cli_nome,cli_email,cli_senha) " +
	    	"VALUES (1111,'e60410ua1110011s','no8071p4491s','el40e011110s6s')"
	    	);
	stmt.addBatch("INSERT INTO cliente_endereco " +
	    	" (end_codigo_cliente,end_tipo_endereco,end_numero) " +
	    	"VALUES (5,177,5)"
	    	);
	
              
  int[] num = stmt.executeBatch();  
      
       
    System.out.println();
    
 
    
    con.commit();
    con.setAutoCommit(true);
    stmt.close();
    con.close();


	
	return num ;
}
	
public static void main (String args[]) throws Exception{
	
	
	int[] px = inserirPessoa();
	
	
	
	System.out.println(px);
}
	
}

Mas com o executeBatch() ele me retorna o endereço do objeto :

Ex: int[] num = stmt.executeBatch();

([b] [I@1bf6770 [/b])

Como posso fazer para obter essas confirmação de que foi executado aquele insert???

3 Respostas

J
int[] linhas = stmt.executeBatch();

for(int i=0;i<linhas.length;i++){
   if(linhas[i]==0){
      System.out.println("A query "+i+" não afetou nenhuma linha");
   }
}
felipereisbr

Valeu pela força

[]´s Reis

felipereisbr

Valeu pela força

[]´s Reis

Criado 6 de outubro de 2006
Ultima resposta 6 de out. de 2006
Respostas 3
Participantes 2