`

CallableStatement 接口

    博客分类:
  • JDBC
阅读更多
CallableStatement用于执行SQL存储过程,存储过程是执行特定操作的子程序。CallableStatement对象扩展了PreparedStatement。CallableStatement类中的方法用于指定输入参数和检索返回值。
CallableStatement对象是使用Connection对象创建的。
下面的SQL语句将创建名为showEmployees的存储过程,它根据员工编号查询员工姓名:

String createProcedure = "CREATE or REPLACE PROCEDURE showEmployees (name OUT VARCHAR2, num IN NUMBER) IS BEGIN SELECT ename INTO name FROM emp WHERE empno = num; END;";

Statement stmt = conn.createStatement();
stmt.executeUpdate(createProcudure);



存储过程showEmployees将作为数据库对象在数据库中编译和存储。
下面的代码调用刚才生成的存储过程:


CallableStatement cs = conn.prepareCall({call showEmployees(?,?)});
cs.registerOutParameter(1, java.sql.Types.CHAR);
cs.setInt(2,7777);
cs.execute();
String str = cs.getString(1);



对存储过程的调用必须用大括号括起,它是存储过程的转义语法。当驱动程序遇到{call show Employees(?,?)}时,它会将该转义语义转换为数据库使用的本地SQL,从而调用名为showEmployees的存储过程。
其中“?”占位符为IN,OUT还是INOUT参数取决于存储过程。
OUT 参数要使用

registerOutParameter(int parameterIndex, int sqlType) throws SQLException


其中,整形为java.sql.Types.INTEGER,字符型为java.sql.Types.CHAR,其余类型请参考有关资料。
IN 参数使用setXXX()方法设置实际值,例如,设置字符串参数为:

public void setString(int parameterIndex, String x) throws SQLException


OUT 参数使用getXXX()方法取得返回值,例如,取得字符串的方法为:

public String getString(int parameterIndex) throws SQLException
分享到:
评论

相关推荐

    CallableStatement调用Oracle存储过程返回结果集(ResultSet).pdf

    在Java编程中,CallableStatement接口是用来执行SQL存储过程或函数的。在Oracle数据库中,存储过程可以接收输入参数、输出参数或两者都有,并且可能返回结果集。本篇将详细阐述如何使用CallableStatement调用Oracle...

    《-JDBC快速入门-》

    CallableStatement接口是JDBC API的核心组件,提供了执行存储过程的方法。CallableStatement接口包括执行存储过程、获取执行结果等方法。 Druid的使用: Druid是一个开源的数据库连接池框架,提供了高性能的数据库...

    Java高级教程课件 java数据库教程 JDBC教程 4-jdbc编程(2)(共5页).pptx

    在本教程中,我们将深入探讨PreparedStatement和CallableStatement接口,以及Oracle数据库中处理LOB数据的方法。 1. PreparedStatement接口 PreparedStatement接口是为了提高SQL语句执行的效率和安全性而设计的。当...

    java调用存储过程

    调用存储过程主要通过CallableStatement接口,它是PreparedStatement的一个子接口,专为调用数据库的存储过程而设计。以下是一个简单的调用存储过程的步骤: 1. **加载驱动**:首先,我们需要加载对应数据库的JDBC...

    CallableStatement调用Oracle存储过程返回结果集(ResultSet).docx

    在Java编程中,CallableStatement接口是用来执行SQL存储过程或函数的。Oracle数据库是广泛使用的数据库系统,它支持存储过程的创建和调用。本篇将详细介绍如何使用CallableStatement调用Oracle存储过程,并处理返回...

    在java中使用存储过程

    在Java中使用存储过程涉及到多个知识点,包括数据库连接、CallableStatement接口的应用以及具体的SQL语句调用等。本文将从这些方面入手,详细介绍如何在Java应用程序中调用存储过程。 ### 一、数据库连接 #### 1.1...

    Java语言SQL接口—JDBC编程技术

    - CallableStatement接口:用于调用存储过程,设置输入/输出参数。 4. JDBC最佳实践: - 使用try-with-resources语句处理资源关闭,确保异常情况下也能正确关闭资源。 - 使用PreparedStatement而非Statement,...

    JAVA调用存储过程

    本文将详细介绍如何使用JDBC的CallableStatement接口来调用存储过程。 首先,CallableStatement接口是JDBC提供的一种标准方式,用于调用数据库中的存储过程。它扩展了PreparedStatement接口,增加了处理存储过程...

    JSP中使用数据库ppt课件.ppt

    通过Connection对象,我们可以创建Statement、PreparedStatement或CallableStatement接口的实例,以执行SQL语句。Connection接口还提供了诸如提交事务、回滚事务、关闭连接以及获取数据库元数据等方法。 3. **...

    jdbc-增删改查和封装增删改查.docx

    CallableStatement接口是Statement接口的子接口,使用它可以执行存储过程。 在上面的代码中,我们定义了一个JdbcDemo类,该类提供了一个create方法来插入数据。该方法使用了PreparedStatement接口来执行insert语句...

    Java数据库接口JDBC入门基础讲座 .rar

    JDBC还提供了存储过程调用、CallableStatement接口、游标查询、批处理、连接池和JNDI数据源等功能,满足更复杂的应用场景。 通过学习JDBC,开发者不仅可以实现Java应用程序与数据库之间的基本交互,还能深入理解...

    JDBC详解.docx

    5. **CallableStatement接口** `CallableStatement`继承自`PreparedStatement`,用于执行数据库的存储过程。它的方法`call(String sql)`允许调用存储过程。 6. **ResultSet接口** `ResultSet`是执行查询后返回的...

    java-storeprocedure.rar_java存储过程_java项目

    JDBC提供了CallableStatement接口,它是PreparedStatement的子接口,专门用于执行存储过程。 三、CallableStatement的使用 1. 准备CallableStatement:首先,我们需要创建一个CallableStatement对象,通过...

    java调用存储过程[定义].pdf

    在Java中,我们通过CallableStatement接口来调用存储过程。 CallableStatement是PreparedStatement的子类,因此它继承了PreparedStatement的所有功能,包括预编译的SQL语句和参数绑定。CallableStatement的主要任务...

    MySQL的JDBC驱动包:mysql-connector-java-8.0.29.jar

    4. `com.mysql.cj.jdbc.CallableStatementImpl`: 实现了CallableStatement接口,用于调用MySQL的存储过程。 安装和使用`mysql-connector-java-8.0.29.jar`的过程通常包括以下步骤: 1. 将该JAR文件添加到项目的类...

    cxr.rar_it

    3. **CallableStatement.java**:CallableStatement接口用于执行SQL存储过程。它可以包含输入参数、输出参数或两者都有。当需要调用数据库中的存储过程时,CallableStatement是首选。 4. **PreparedStatement.java*...

    USA.rar_oracle

    2. **CallableStatement接口**:在Java中,调用存储过程主要通过`CallableStatement`接口。这个接口扩展了`PreparedStatement`,提供了执行存储过程的方法。例如,使用`{call procedure_name (?, ?)}`格式设置SQL...

Global site tag (gtag.js) - Google Analytics