package com.yc.ycportal.ge.util;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.ResultSet;
public class TestOracle {
private Connection conn=null;
private CallableStatement call=null;
private ResultSet rs=null;
public TestOracle() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
setConn();
}
catch (ClassNotFoundException ex) {
}
}
public void setConn(){
String url="jdbc:oracle:thin:@localhost:1521:hy";
try {
conn = DriverManager.getConnection(url, "system", "manager");
System.out.println("conn ok");
}
catch (SQLException ex) {
}
}
public void closeConn(){
if(conn!=null){
try {
conn.close();
System.out.println("conn close");
}
catch (SQLException ex) {
}
}
}
//调用单独的具有输出参数的过程
public void testShuchu(int salary ){
//实例化cal
try {
//cal = conn.prepareCall("{call hr.shuchu(?,?)}");
call=conn.prepareCall("begin hr.shuchu(?,?); end;");
call.setInt(1,salary);
//注册输出参数
//cal.registerOutParameter(2,java.sql.Types.VARCHAR);
call.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR);
call.execute();
//获得输出参数
// String str=cal.getString(2);
String str=(String)call.getObject(2);
System.out.println(str);
}
catch (SQLException ex) {
}
finally{
try {
call.close();
}
catch (SQLException ex1) {
}
}
}
// 调用函数
public void testHanshu(int num1,int num2){
try {
call = conn.prepareCall("begin ?:=hr.mypack.myfunc(?,?); end;");
call.setInt(2,num1);
call.setInt(3,num2);
call.registerOutParameter(1,oracle.jdbc.OracleTypes.NUMBER);
call.execute();
int num = call.getInt(1);
System.out.println(num);
}
catch (SQLException ex) {
}
finally{
try {
call.close();
}
catch (SQLException ex1) {
}
}
}
// 调用游标
public void testRs(int salary){
try {
call = conn.prepareCall("begin hr.mypack.shuchu(?,?); end;");
call.setInt(1,salary);
call.registerOutParameter(2,oracle.jdbc.OracleTypes.CURSOR);
call.execute();
rs=(ResultSet)call.getObject(2);
if(rs!=null){
while (rs.next()) {
System.out.println(rs.getString(2));
}
}
else{
System.out.println("查无结果");
}
}
catch (SQLException ex) {
}
finally{
try {
rs.close();
call.close();
}
catch (SQLException ex1) {
}
}
}
public static void main(String[] args) {
TestOracle dbUtil1 = new TestOracle();
dbUtil1.testRs(420);
}
}
分享到:
相关推荐
首先,我们要了解Java与Oracle数据库连接的基础知识。Java中,JDBC(Java Database Connectivity)是连接数据库的标准API,它允许Java应用程序通过编写Java代码来访问数据库。要连接到Oracle数据库,我们需要引入...
本篇将详细介绍如何使用JDBC连接Oracle数据库并执行存储过程。 首先,我们需要理解JDBC的基本概念。JDBC是Java平台的标准API,它允许Java程序与各种数据库进行通信。通过JDBC,我们可以创建数据库连接、发送SQL语句...
本文介绍了Java调用Oracle存储过程返回结果集Record和Cursor的相关知识点,包括创建Type、PACKAGE和PROCEDURE,Java代码中调用存储过程,并获取结果集。这些知识点对深入了解Oracle存储过程和Java调用Oracle存储过程...
在Java编程中,连接Oracle数据库并执行存储过程是常见的任务,尤其在企业级应用中,存储过程被广泛用于实现复杂的业务逻辑和优化数据操作。本文将深入探讨如何使用JDBC(Java Database Connectivity)API来调用...
Java连接Oracle数据库是Java开发中的常见任务,Oracle数据库是企业级广泛应用的关系型数据库管理系统。在Java中,我们通常使用JDBC(Java Database Connectivity)API来实现与Oracle数据库的交互。`ojdbc6.jar`是...
本文详细介绍了如何使用Java通过JDBC连接Oracle数据库的过程。从加载驱动程序、建立连接到执行SQL查询以及处理结果集,再到最后的资源释放,每一个步骤都给出了具体的代码示例。掌握了这些基础知识后,开发者可以更...
Java连接Oracle数据库主要涉及到Java编程语言、Oracle数据库系统以及JDBC(Java Database Connectivity)技术。JDBC是Java中用于与各种数据库进行交互的一组接口和类,它为开发者提供了标准的API,使得Java应用程序...
在初学SpringCloud的过程中,与Oracle数据库的连接是构建分布式系统的一个重要环节。SpringCloud作为一个微服务框架,提供了丰富的服务治理功能,而数据库作为数据存储的核心,与SpringBoot的集成使得我们可以轻松...
在Java编程中,调用Oracle数据库的存储过程是常见的任务,尤其在处理复杂业务逻辑或高效数据操作时。本文将全面总结如何使用Java与Oracle存储过程进行交互。 首先,理解Oracle存储过程的基本概念。存储过程是预编译...
在Java中,我们可以使用JDBC(Java Database Connectivity)来连接Oracle数据库并执行上述SQL语句或调用存储过程。以下是一个基本的示例: ```java import java.sql.*; public class OraclePagingExample { ...
在Java编程中,调用Oracle数据库的存储过程是常见的数据操作任务,特别是在处理复杂的业务逻辑或需要高效批量处理数据时。存储过程是预编译的SQL语句集合,可以提高性能,减少网络流量,并增强安全性。本文将详细...
- **queryProcedure**方法:该方法是核心处理方法,用于调用存储过程,并获取结果集。 - 参数列表: - `List list`:包含要传递给存储过程的参数值列表。 - `String strStoredProcedureName`:存储过程的名称。 ...
在Java编程中,调用Oracle数据库的存储过程并处理返回的游标是一项常见的任务。Oracle存储过程可以封装复杂的业务逻辑,而游标则用于在结果集上进行迭代,特别是当结果集太大,不适合一次性加载到内存时。下面将详细...
OWSM使得Oracle数据库能够作为Web服务提供者,允许外部应用通过HTTP或HTTPS协议来调用存储过程、函数等数据库操作。 要通过Web服务连接Oracle数据库,你需要遵循以下步骤: 1. **配置Oracle数据库**:确保Oracle...
以上代码展示了如何在Java中调用Oracle数据库的三种类型的存储过程:无返回值的存储过程、有单个返回值的存储过程以及返回列表的存储过程。对于无返回值的存储过程,主要涉及的是参数的输入,通过`execute()`方法...
在Java编程中,调用Oracle数据库的存储过程是常见的任务,尤其在处理复杂业务逻辑或数据操作时。本文将深入探讨如何使用Java与Oracle数据库进行交互,并调用存储过程。 首先,确保你已经在你的开发环境中安装了...
本节将深入探讨如何使用Java来操作Oracle数据库,特别是调用存储过程。 首先,我们需要了解JDBC的基本概念。JDBC是Java平台的标准接口,它允许Java程序连接到各种类型的数据库,包括Oracle。在Java中,我们通常通过...
- **增强安全性**:通过限制用户对数据库表的直接访问,而是通过调用存储过程来间接操作数据。 - **简化应用开发**:存储过程可以封装复杂的业务逻辑,简化应用程序的开发工作。 - **重用性**:存储过程可以被多个...
在Java编程中,调用Oracle数据库的存储过程并获取结果集是一项常见的任务。在这个场景下,我们将使用JDK 1.5版本,MyEclipse集成开发环境,以及Oracle 11g数据库。以下是对这个主题的详细解释: 首先,我们需要确保...