Comando source do mysql no JAVA, não tem como?

2 respostas
W

Tem como fazer SOUCE caminho para importar um script pelo java como é feito no mysql??

String query = "SOURCE D:/Desktop/scriptsql.sql";
statement = conection.prepareStatement(query);

Isso não deu certo e nem com contrabarras!

2 Respostas

Z111

não funcionará. http://forums.mysql.com/read.php?39,23526,23700
vc terá que ler o arquivo e executá-lo http://www.coderanch.com/t/306966/JDBC/java/Execute-sql-file-java

W

Z:
não funcionará. http://forums.mysql.com/read.php?39,23526,23700
vc terá que ler o arquivo e executá-lo http://www.coderanch.com/t/306966/JDBC/java/Execute-sql-file-java

sim, eu até fiz assim lendo comando por comando e executando e deu certo. O problema é que eu não sei como fazer isso com trigger que tem delimiter por exemplo. Olha:

while((linha = scriptsql.readLine()) != null){
query += linha + "\n";
}
int i=0;
for(int j=i; j<query.length(); j++){
   if((query.charAt(j) == ';') && (! temDelimiter)){
	statement = conection.prepareStatement(query.substring(i,j));
	statement.execute();
	i = j+1; // o começa vai ser depois do último ';'
  }
}

Isso funciona! Mas não consigo executar um CREATE TRIGGER por exemplo:

delimiter |
CREATE TRIGGER excluiprojeto AFTER UPDATE ON projeto    
  FOR EACH ROW BEGIN    
    if NEW.excluido ><> OLD.excluido then         
	UPDATE atividade SET excluido = NEW.excluido WHERE 		  projeto_id_projeto = OLD.id_projeto;  
	UPDATE usuario_associado_proj_ativ SET excluido = 		  NEW.excluido WHERE projeto_id_projeto = 	   	  OLD.id_projeto  ;
   end if;  
  END;
|
delimiter ;
Criado 16 de junho de 2011
Ultima resposta 17 de jun. de 2011
Respostas 2
Participantes 2