Problema com sp

4 respostas
luistiagos

ola no schema agenda no mysql eu tenho a seguinte stored procedure:

DELIMITER $$

 DROP PROCEDURE IF EXISTS `agenda`.`sp_pesquisa_usuario_por_email` $$
 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_pesquisa_usuario_por_email`(email varchar(45))
  BEGIN

  SELECT u.id, u.email, u.nome, u.senha, u.id_contato, u.id_compromisso FROM usuario u
   where u.email = email;

 END $$

 DELIMITER ;

mas quando eu a chamo via jdbc :

ResultSet res = st.executeQuery("call sp_busca_usuario_por_email('"+email+"')");

ocorre o seguinte erro:

Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: PROCEDURE agenda.sp_busca_usuario_por_email does not exist

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1027)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)

so que a mesma sp executada no mysql ela retorna os resultados… o que pode estar havendo?

4 Respostas

von.juliano

Vc está utilizando Statement ou PreparedStatement?
Para utilizar sstore procedures, dê uma estudada na interface CallableStatement.

Blz? Flw! :thumbup:

Marky.Vasconcelos

Eu não entendo nada sobre procedures mas é melhor que fazer um select cheio de where?

PS: Tenho uma tabela com 700000 registros.

von.juliano

Mark_Ameba:
Eu não entendo nada sobre procedures mas é melhor que fazer um select cheio de where?

PS: Tenho uma tabela com 700000 registros.


Na verdade não e bem essa a diferença, tipo na sua procedure pode tb haver uma série de wheres. A diferença é que vc mantém o seu código sql no banco, ao invés de escrever uma String imensa no seu código java. Quando vc não tem uma opção melhor (Hibernate, não posso usar no momento), acho uma ótima opção.

Blz? Flw! :thumbup:

Marky.Vasconcelos

Muito obrigado^^
Eu já uso o Hibernate acho que não precise usar Procedures.

Criado 29 de outubro de 2007
Ultima resposta 29 de out. de 2007
Respostas 4
Participantes 3