java连接oracle执行存储过程小程序

下面是一个java连接Oracle 执行一个没有返回值的存储过程的小例程。

package com.test;
import java.sql.*;
public class procedure {
    public static void main(String[] args) {
        Connection ct=null;
        CallableStatement cs=null;
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");              
            ct=DriverManager.getConnection("jdbc:oracle:thin:@10.8.2.73:1521:orcl",
            "scott","123456");
            cs=ct.prepareCall("{call pro_book(?,?,?)}");
            cs.setInt(1, 10001);
            cs.setString(2, "华尔街之狼");
            cs.setString(3, "中信出版社");
            cs.execute();  
        } 
           
        catch (ClassNotFoundException e) {
         
            e.printStackTrace();
        } 
        catch (SQLException e) {
 
            e.printStackTrace();
        }
        finally{
             
            try {
                cs.close();
                ct.close();
            } catch (SQLException e) {
                 
                e.printStackTrace();
            }
        }
         
    }
 
}

下面是java执行一个有返回值的存储过程的小程序。

package com.test;
import java.sql.*;
public class procedure {
	public static void main(String[] args) {
		Connection ct=null;
		CallableStatement cs=null;
		try {
		Class.forName("oracle.jdbc.driver.OracleDriver");
		ct=DriverManager.getConnection("jdbc:oracle:thin:@10.8.2.73:1521:orcl",
		"scott","123456");
			cs=ct.prepareCall("{call pro_book_getname(?,?)}");
			cs.setInt(1, 10001);
			cs.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
			cs.execute();
			String name=cs.getString(2);
			System.out.println(name);

		} 
		  
		catch (ClassNotFoundException e) {

			e.printStackTrace();
		} 
		catch (SQLException e) {

			e.printStackTrace();
		}
		finally{

			try {
				cs.close();
				ct.close();
			} catch (SQLException e) {

				e.printStackTrace();
			}
		}

	}

}

一个取得一个集合的java程序:

首先先写一个oracle包,定义一个cursor类型,PL/SQL如下:

create package pack_cursor is 
type type_cursor is ref cursor;
end; 
/

再写一个存储过程:

create or replace procedure pro_emp_cursor(no in number,cur out pack_cursor.type_cursor) is
begin
  open cur for select * from emp where deptno=no;
  end;
  /

java程序代码如下:

package com.test;
import java.sql.*;
public class procedure {
	public static void main(String[] args) {
		Connection ct=null;
		CallableStatement cs=null;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		ct=DriverManager.getConnection("jdbc:oracle:thin:@10.8.2.73:1521:orcl",
		"scott","123456");
			cs=ct.prepareCall("{call pro_emp_cursor(?,?)}");
			cs.setInt(1, 10);
			cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
			cs.execute();
			ResultSet rs=(ResultSet)cs.getObject(2);
			while(rs.next())
			{
				System.out.println("EMPNO:"+rs.getInt(1)+" NAME:"+rs.getString(2)+" JOB:"+rs.getString(3));
			}

		} 
		  
		catch (ClassNotFoundException e) {

			e.printStackTrace();
		} 
		catch (SQLException e) {

			e.printStackTrace();
		}
		finally{

			try {
				cs.close();
				ct.close();
			} catch (SQLException e) {

				e.printStackTrace();
			}
		}

	}

}
时间: 2024-10-29 00:55:36

java连接oracle执行存储过程小程序的相关文章

通过OCILIB连接oracle执行存储过程

#include <iostream> #include "ocilib.hpp" using namespace std; using namespace ocilib; #pragma comment(lib,"ociliba.lib") #pragma comment(lib,"ocilibw.lib") int main() {    try    {                int ncout = 0, iin = 1

利用java开发一个双击执行的小程序

之前我们利用java写了很多东西,但是好像都没有什么实际意义. 因为有意义桌面小程序怎么都得有个界面,可是界面又不太好搞.或者 了解到这一层的人就少之又少了. 呀,是不是还得开辟一些版面来介绍awt和 swing... 算了 先把这个 双击执行的小程序 贡献出来. 这次 在分享一下源代码[以前还没有上传过源代码,布置怎么个搞法] 要求是: 输入一个 后缀名,然后输入所在目录,然后 点击查找,比如我们可以 输入F:\,然后查找 F盘下面的所有后缀名为比如.pdf 举例: 主要是 看了很多 资源,然

Java连接Oracle数据库常用方法

JDBC的六大步骤: 注册驱动 获取连接 获取执行sql语句对象 执行sql语句 处理结果集 关闭资源 oracle URL: jdbc:oracle:thin:@localhost:1521:SID jdbc:oracle:thin:@//localhost:1521:SERVICENAME MySQL URL: jdbc:mysql://localhost:3306/数据库名称 thin:小型驱动,驱动方式 localhost 本机ip地址 127.0.0.1 SID:数据库的SID SER

java连接oracle数据库的实现代码

package connectionOracleDatabase; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ConnectionOracleDa

java连接oracle数据库,关闭连接出现异常:java.sql.SQLRecoverableException: IO Error: Connection reset

java.sql.SQLRecoverableException: IO Error: Connection reset at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:612) at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:5094) at com.sms.send.StartTaskNew.run(SmsSend.java

一个非常标准的Java连接Oracle数据库的示例代码

最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项"库",然后点击"添加外部Jar",选择"D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar"(注:D:\Oracle为数据库的安装路径). 2.以下代码为非常标准的Oracle数据库连接代码示例: /** * 一个非常标准的连接Oracl

oracle入门(5)——java连接oracle数据库

[本文介绍] 前面几篇说了那么多,最终还没讲到如何用java连接数据库,本文实用一点,讲讲如何连接数据库. [java连接oracle数据库] 1.导入jdbc驱动:看到这里,就忙着上网找驱动?不,安装了oracle就有自带驱动了,路径在:安装目录\product\11.2.0\dbhome_1\jdbc\lib,下面有多个jar包,选择适合自己的一个(最简单的办法就是导入项目后看看能连接不,能连接的就是适合的驱动) 2.代码: 关于url:@后面是IP:端口,这两个不知道怎么查的请看博文:ht

Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战

Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战 说明:Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战,优惠券是一种常见的促销方式,在规定的周期内购买对应商品类型和额度的商品时,结算时满足一定条件会减免一定金额.通过发放优惠券,引导用户购买相应的商品,在下单的时候抵扣一定的费用,达到促销.提高客单价的目标. 优惠券不论在线上还是线下,适用范围都比较广泛.例如滴滴发的专车券.外卖平台发的外卖券.京东淘宝的优惠券等. 1.优惠券的类型和应用场景 优惠券有多种分类方式,按照使

Java连接Oracle数据库

package com.db;              import java.sql.Connection;       import java.sql.DriverManager;       import java.sql.PreparedStatement;       import java.sql.ResultSet;              public class DBConnection {           // 连接Oracle数据库           public