Problema com sp

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?

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

Blz? Flw! :thumbup:

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

PS: Tenho uma tabela com 700000 registros.

[quote=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.[/quote]
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:

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