JDBC连接数据库中CallableStatement执行有参存储过程及注解其他

Oracle的建有参存储过程的过程

procedure pro_01(v_01 in number,v_02 out varchar2)
as
begin
select name into v_02 from test where id = v_01;
exception
when no_data_found then
dbms_output.put_line(‘no data‘);
when too_many_rows then
dbms_output.put_line(‘too many rows‘);
end;

JDBC调用存储过程 并取得输出参数 注解代码部分为PreparedStatement对象的更新和查询

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;

public class CallableTest {
	public static void main(String[] args){
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		String user = "scott";
		String password = "tiger";
		Connection conn = null;
		CallableStatement cstmt = null;
		ResultSet rs = null;
		try {
			conn = DriverManager.getConnection(url,user,password);

//			String sql = "select * from test";
//			String sql ="update test set id = ? where id = ?";
//			cstmt = conn.prepareStatement(sql);
//			rs = cstmt.executeQuery();//查询操作 返回结果集
//			cstmt.setInt(1, 13);
//			cstmt.setInt(2, 12);
//			int count = cstmt.executeUpdate();//更新操作 返回受影响行数

			String sql = "{call pro_01(?,?)}";//执行存储过程sql语句{call procedure_name}
			cstmt = conn.prepareCall(sql);

			cstmt.setInt(1, 13);
			cstmt.registerOutParameter(2, Types.VARCHAR);//注册输出参数
			boolean isExecute = cstmt.execute();//只有执行结果为结果集时才会返回true
			String out = cstmt.getString(2);//获取输出参数,以注入位置为准提取
			System.out.println(out);
			if(isExecute){
				System.out.println("Result");
			}else{
				System.out.println("success");
			}
//			if( rs != null){
////				while (rs.next()) {
////					System.out.println(rs.getInt(1));
////				}
//				System.out.println("what is wrong");
//			}else{
//				System.out.println("execute over");
//			}

//			System.out.println(count);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(rs != null){
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(cstmt != null){
			try {
				cstmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(conn != null){
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}

}

  

时间: 2024-11-03 23:25:44

JDBC连接数据库中CallableStatement执行有参存储过程及注解其他的相关文章

oracle pl/sql之java中调用oracle有参存储过程

存储过程: create or replace procedure my_procedure(in_no in number,in_name in varchar2) is begin insert into emp(empno,ename) values(in_no,in_name); end; java程序演示: import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager

Linux中定时执行DB2的存储过程

一.需求说明 将DB2中的实时数据按天和小时汇总到汇总表中. 二.过程及步骤 第一步:编写DB2存储过程. 1. 在Dbvisualizer中新建SQL editor. 2. 代码: 1 --/ 2 CREATE PROCEDURE "NCPOLLDATA"."AGGREGATE_ENTITY_DAILY" 3 () 4 LANGUAGE SQL 5 SPECIFIC SQL160427123206300 6 BEGIN 7 --declare varibles 8

SQL SERVER链接服务器执行带参存储过程

SQL SERVER通过链接服务器,链接到ORACLE数据库,下面我要在SQL SERVER数据库上写一个存储过程,该存储过程需要用通过链接服务去取ORACLE数据库里的数据,该存储过程是含参数的存储过程.在SQL SERVER 数据库里创建一个存储过程来取ORACLE数据库里的一个表里的数据如下: 1,在SQL SERVER数据库上创建存储过程 USE [ProdDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- =======

Java中JDBC连接数据库(MySQL)

 JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一个功能都放在一起. 安装下载的数据库驱动程序jar包,不同的数据库需要不同的驱动程序(这本该是第一步,但是由于属于安装类,所以我们放在最后) 一.JDBC连接数据库(编辑)步骤(主要有六个步骤).  1.注册驱动: Class.forName("com.mysql.jdbc.Driver");显示的

【转】Java开发中JDBC连接数据库代码和步骤总结

(转自:http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html) JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("co

完整java开发中JDBC连接数据库代码和步骤

完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String  className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(Class

Java开发中JDBC连接数据库代码和步骤

JDBC连接数据库:创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String  className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver"); }catch(ClassNotFoundException e){ Syste

Java开发中JDBC连接数据库代码的七个步骤

JDBC(Java Data Base Connectivity)是一种用于执行SQL语句的Java API可以为多种关系数据库提供统一访问它由一组用Java语言编写的类和接口组成. JDBC对Java程序员而言是API对实现与数据库连接的服务提供商而言是接口模型.作为APIJDBC为程序开发提供了标准的接口. JDBC连接数据库 创建一个以JDBC连接数据库的程序包含七个步骤 加载JDBC驱动程序 在连接数据库之前首先要加载想要连接的数据库的驱动到JVMJava虚拟机这通过java.lang.

Java中JDBC连接数据库代码和步骤详解总结

JDBC连接数据库 ?创建一个以JDBC连接数据库的程序,包含7个步骤:         1.加载JDBC驱动程序:         在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现.    例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoun