`

java中调用存储过程或函数

    博客分类:
  • Java
阅读更多

  1.调用函数

     CallableStatement cs=con.prepareCall("{?=call get_pname(?,?,?)}");

     第一个?表示返回的值,后面的?可以是输入参数,也可以是输出参数。

     第一个?是返回参数,所以必须有语句:

     connection.registerOutParameter(1, Types.VARCHAR);(Types.varchar是类型)

     后面的?如果是输出参数,应该也加上registerOutParameter语句: 

     connection.registerOutParameter(2, Types.VARCHAR);(2是第2个占位符,Types.varchar是类型)
     最后打印输出的结果:

     System.out.println(cs.getString(1)); (1是对应输出参数,第一个输出参数)

 

  2.调用存储过程

     CallableStatement cs=con.prepareCall("{call stu_pro(?,?,?)}");(与函数的区别是:没有?=)
     java程序中要打印调用过程获得的值,需调用有输出参数的存储过程,用法和调用函数一样。

 

  3.简单例子

package com.dgy.app;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;


public class OraclePro {
	/**
	 * 连接数据库
	 */
	public static Connection getConnection(){
		 Connection con = null;
		 try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			String url = "jdbc:oracle:thin:@PC-200911181406:1521:dgy";
			String user = "dwj";
			String pwd = "dwj";			
			con = DriverManager.getConnection(url,user,pwd);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return con;
	}
	public static void main(String[] args) throws SQLException {
		 //System.out.println(OraclePro.getConnection());		
		Connection con=OraclePro.getConnection();
		CallableStatement cs=con.prepareCall("{?=call get_pname}");//没有参数的函数
		cs.registerOutParameter(1, Types.VARCHAR);//第一个占位为输出,类型是varchar
		cs.execute();                  //不能忘记execute()
		System.out.println(cs.getString(1)); //打印输出结果,对应registerOutParameter
	}
}
 
//有1个输入参数的函数		
CallableStatement cs=con.prepareCall("{?=call get_pname1(?)}");
cs.registerOutParameter(1, Types.VARCHAR);
cs.setLong(2,25);	  //输入参数是25
cs.execute();

//有1个输出参数的函数	
CallableStatement cs=con.prepareCall("{?=call get_pname2(?)}");
cs.registerOutParameter(1, Types.VARCHAR);
cs.registerOutParameter(2, Types.VARCHAR);
cs.execute();
System.out.println(cs.getString(1));
System.out.println(cs.getString(2));
//上面两个结果一样,因为两个意思是一样的

//1个输入参数,1个输出参数		
CallableStatement cs=con.prepareCall("{?=call get_pname3(?,?)}");
//第1个是返回值,第2个是输入参数,第3个是输出参数		
cs.registerOutParameter(1, Types.VARCHAR);
cs.setLong(2, 25);	
cs.registerOutParameter(3, Types.VARCHAR);		
cs.execute();
System.out.println(cs.getString(1));
System.out.println(cs.getString(3));

 

   调用存储过程与调用函数的方法一样,就只是con.prepareCall("{call  procedure(?,?)}")没有?=。

分享到:
评论

相关推荐

    Java中调用存储过程或存储函数的方法[文].pdf

    最后,为了调试和测试存储过程和存储函数,你可以创建一个简单的测试程序,编写相应的存储过程和存储函数,然后使用上述Java代码进行调用,观察结果是否符合预期。记住,在编写和调用存储过程或存储函数时,一定要...

    JAVA 与ORACLE 存储过程及函数

    对于Oracle函数,由于它会返回一个值,所以在Java中调用时,需要使用`registerOutParameter()`方法先声明返回值的数据类型,然后通过`CallableStatement`的`getXXX()`方法获取返回值。例如,如果函数返回一个整数,...

    JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip

    3. **在MyBatis中调用存储过程** - 在Mapper接口中定义方法,方法名与存储过程名相同。 - 使用`@SelectProcedure`或在XML映射文件中配置`<select id="procName" statementType="CALLABLE">`,指定存储过程。 - ...

    java调用存储过程(含out参数)

    Java中调用存储过程主要通过JDBC(Java Database Connectivity)接口实现。以下是一步步的操作步骤: 1. **加载数据库驱动**:首先,确保已添加对应数据库的JDBC驱动库到项目类路径中,如MySQL的`mysql-connector-...

    Java调用存储过程的2种方法

    在Java中调用数据库中的存储过程是常见的操作之一,这不仅可以提高程序性能和代码可维护性,还可以更好地利用数据库的功能。根据提供的标题、描述以及部分内容,本文将详细介绍Java中调用存储过程的两种方法。 ####...

    存储过程,存储函数和触发器

    ### 在Java中调用存储过程/存储函数 在Java中,可以使用JDBC驱动来调用存储过程或存储函数。通常需要使用`CallableStatement`对象来进行调用。 #### 调用存储过程 ```java Connection conn = DriverManager.get...

    java调用存储过程实例

    接下来,在Java中调用这些存储过程。首先,需要加载Oracle JDBC驱动,并建立数据库连接。 ```java String url = "jdbc:oracle:thin:@localhost:1521:mydb"; String driver = "oracle.jdbc.driver.OracleDriver"; /...

    java调用存储过程源码 sql数据库

    在Java中调用存储过程主要通过JDBC(Java Database Connectivity)接口实现。以下是一个基本的步骤: 1. **加载驱动**:首先,你需要加载对应数据库的JDBC驱动。例如,如果你使用的是MySQL,你可能需要`Class.for...

    java调用存储过程返回数组

    本文将详细探讨如何在Java中调用存储过程,并处理返回的数组类型数据。 首先,存储过程是一种预编译的SQL语句集合,它可以包含多个SQL操作,变量、条件判断、循环等控制结构。在Oracle数据库中,可以创建一个存储...

    java调用存储过程

    本文将深入探讨如何在Java中调用存储过程,以及这背后涉及的相关技术点。 首先,理解存储过程的基本概念至关重要。存储过程是由数据库管理系统(如MySQL、Oracle、SQL Server等)支持的,它允许开发者编写一系列...

    java调用Oracle存储过程

    在Java中调用存储过程主要通过`CallableStatement`接口实现,它是`PreparedStatement`的子接口,专用于调用存储过程和函数。 以下是一个基本的步骤来调用Oracle存储过程: 1. **建立数据库连接**: 使用`...

    jdbc调用存储过程 函数例子

    在数据库管理中,Java Database Connectivity (JDBC) 是一种用于执行SQL语句的标准API,它使得...通过理解和实践这些步骤,开发者可以轻松地在Java应用中调用数据库中的存储过程和函数,实现更高效、更灵活的数据处理。

    jdbc调用存储过程,函数,游标

    在JDBC中调用存储过程通常涉及以下步骤: 1. 加载并注册数据库驱动,建立数据库连接。 2. 创建CallableStatement对象,它继承自PreparedStatement,专门用于调用数据库的存储过程。 3. 使用CallableStatement的`{}`...

    浅谈Java程序员的存储过程.doc

    #### 三、Java中调用存储过程 在Java中,可以通过`CallableStatement`类来调用存储过程。`CallableStatement`是`PreparedStatement`的子类,专门用于调用存储过程或函数。以下是调用存储过程的基本步骤: 1. **...

    调用存储过程

    如何在java中调用存储过程 使用回调函数调用,数据库驱动用jdbc

    Java数据库程序中的存储过程设计

    为了在Java中调用存储过程,可以使用`CallableStatement`接口。`CallableStatement`继承自`PreparedStatement`,特别适合用于调用数据库中的存储过程或函数。以下是一个简单的示例: ```java import java.sql....

    java中存储过程的调用

    #### 在Java中调用存储过程 接下来,我们将在Java程序中调用上面创建的存储过程: ```java import java.sql.Connection; import java.sql.CallableStatement; import java.sql.SQLException; public class ...

    java调用存储过程.txt

    在Java中调用存储过程主要依赖于`CallableStatement`接口,它是`PreparedStatement`的一个子类,专门用于执行存储过程或函数。 ##### CallableStatement `CallableStatement`是JDBC中的一个接口,它允许Java程序...

    JAVA调用存储过程

    ### JAVA调用存储过程知识点详解 ...本文详细介绍了如何在Java中调用存储过程,包括存储过程的创建、输入/输出参数的设置以及结果的处理。通过这种方式,可以有效地利用数据库的功能,提高应用的性能和安全性。

Global site tag (gtag.js) - Google Analytics