理论教育 使用CallableStatement接口

使用CallableStatement接口

时间:2023-10-18 理论教育 版权反馈
【摘要】:CallableStatement接口继承于PreparedStatement接口,是PreparedStatement接口的扩展,用来执行SQL的存储过程。CallableStatement接口可以处理一般的SQL语句,也可以处理输入参数,同时CallableStatement还定义了OUT(输出)参数以及INOUT参数的处理方法。CallableStatement对象可以使用Connection接口的prepareCall()方法来进行创建,其调用存储过程的语法为:CallableStatement csta = con.prepareCall;其中,procedureName是被调用的存储过程的名称。来代替,调用方式如下:CallableStatement csta = con.prepareCall("?

使用CallableStatement接口

CallableStatement接口继承于PreparedStatement接口,是PreparedStatement接口的扩展,用来执行SQL的存储过程。CallableStatement接口可以处理一般的SQL语句,也可以处理输入参数,同时CallableStatement还定义了OUT(输出)参数以及INOUT(输入输出)参数的处理方法。

CallableStatement对象可以使用Connection接口的prepareCall()方法来进行创建,其调用存储过程的语法为:

CallableStatement csta = con.prepareCall("{call procedureName }");

其中,procedureName是被调用的存储过程的名称。若所调用的存储过程中包含参数,可以使用占位符“?”来代替参数,如:

CallableStatement csta = con.prepareCall("{call procedureName(?, ?, ?) }");

在JDBC API中定义了一套存储过程,即SQL转移语义。该语法定义了包含结果参数和不包含结果参数的两种形式。如果存储过程有返回值,则返回值也用占位符“?”来代替,调用方式如下:(www.daowen.com)

CallableStatement csta = con.prepareCall("? = {call procedureName(?, ?, ?) }");

上述调用方式中的参数是IN、OUT还是INOUT取决于存储过程的定义。如果是IN,则需要使用CallableStatement 接口的setXXX()方法进行赋值;如果是OUT,则首先要使用registerOutParamenter(int index, int sqlType)对OUT参数进行注册,然后在执行结束之后使用getXXX()方法获取OUT的值;如果是INOUT,则可以用setXXX()方法进行赋值,再对这个参数进行类型注册,最后可以通过getXXX()方法得到改变之后的值。

提示:

CallableStatement执行存储过程之后可能会得到一个或者多个ResultSet,因此建议采用execute()方法来执行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈