Mysql的过程同时包含SELECT和UPDATE语句,如何从Java调用这样的程序

我有一个表名为通知

ID BIGINT PK

主题VARCHAR(256)

send_to VARCHAR(50)//电子邮件ID,具体发送通知

状态TINYINT(1)默认'0'//表示目的地通知是否看到或不



另外我有一个过程来读取如下通知:

DELIMITER @@

DROP PROCEDURE wm_request_complaint_read @@

CREATE PROCEDURE wm_umis_db.wm_request_complaint_read(

在P_ID BIGINT,IN p_send_to CHAR(2)

开始

选择rc.subject,rc.details,rc.attach_file,RC, date ,RC, type ,rc.sender_email

从通知RC

其中,rc.id = P_ID AND rc.send_to = p_send_to;

更新通知将状态设置=“1”其中id = P_ID AND send_to = p_send_to;

END @@ DELIMITER;

上述过程包含SELECT和 UPDATE语句

我能够从上面的MySQL GUI工具程序运行...

但我想(我使用JDBC API)从Java运行它..

什么代码我应该写....?

私有静态最后弦乐READ_COMPLAINT_OR_REQUEST =“呼wm_request_complaint_read(?,?)”;

康恩=的getConnection();

CallableStatement的cstmt所= conn.prepareCall(READ_COMPLAINT_OR_REQUEST);

cstmt.setLong(1,ID);

cstmt.setString(2,SENDTO);

ResultSet的RSET = cstmt.executeQuery();

要么

私有静态最后弦乐READ_COMPLAINT_OR_REQUEST =“呼wm_request_complaint_read(?,?)”;

康恩=的getConnection();

CallableStatement的cstmt所= conn.prepareCall(READ_COMPLAINT_OR_REQUEST);

cstmt.setLong(1,ID);

cstmt.setString(2,SENDTO);

cstmt.executeUpdate();

--------------解决方案-------------

什么方法在内部所做的是不是艇员选拔要调用的方法很重要。 最重要的是,如果返回的东西或没有。 因为你的方法不返回的东西, executeUpdate应该足够了。 使用executeQuery如果你的程序返回的结果集, executeUpdate如果它不。 事实上executeUpdate如果你调用它,将产生一个结果集的过程将抛出exeption。

也http://download.oracle.com/javase/1.4.2/docs/api/java/sql/PreparedStatement.html#executeQuery见()

分类:java的 时间:2015-03-15 人气:0
本文关键词: MySQL和Java中,存储过程
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.197 (s). 10 q(s)