Java 调用有输入和输出的存储过程

--有输入和输出的存储过程
SQL> create or replace procedure sp_pro8(
       spNo in varchar2,
       spName out varchar2) is
begin
  select sname into spName from student where sid= spNo;
end;
 1 package oracle;
 2
 3 import java.sql.CallableStatement;
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.SQLException;
 7
 8 import oracle.jdbc.OracleTypes;
 9
10
11 public class Test02 {
12
13     public static void main(String[] args) {
14         // TODO Auto-generated method stub
15                 Connection conn = null;
16                 CallableStatement cs = null;
17                 try {
18                     //1.加载驱动
19                     Class.forName("oracle.jdbc.driver.OracleDriver");
20
21                     //2.连接
22                     String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORACLE12C";
23                     String userName = "sys as SYSDBA";
24                     String password = "fairy6280";
25                     conn = DriverManager.getConnection(url,userName,password);
26
27                     //3.创建CallableStatement
28                     String procedure = "{call sp_pro8(?,?)}";
29                     cs = conn.prepareCall(procedure);
30
31                     //赋值
32                     cs.setInt(1, 1010);
33                     cs.registerOutParameter(2, OracleTypes.VARCHAR);
34                     cs.execute();
35
36                     //取出返回值,要注意?的顺序
37                     String name = cs.getString(2);
38                     System.out.println("学号1010的学生的名字:"+name);
39
40                 } catch (Exception e) {
41                     // TODO Auto-generated catch block
42                     e.printStackTrace();
43                 }
44                 finally{
45                     //关闭
46                     try {
47                         cs.close();
48                         conn.close();
49                     } catch (SQLException e) {
50                         // TODO Auto-generated catch block
51                         e.printStackTrace();
52                     }
53                 }
54     }
55
56 }

时间: 2024-12-17 13:20:34

Java 调用有输入和输出的存储过程的相关文章

Hibernate调用带有输入参数,输出参数为cursor的存储过程

一.Oracle创建表及存储过程 1.创建表T_MONITOR_DEVICE 创建后的表结构 2.创建存储过程 create or replace procedure ProcTestNew(v_monitordeviceid in number,curdata out sys_refcursor ) As begin open curdata for select ID, IP,PORT from T_MONITOR_DEVICE where id=v_monitordeviceid;--带参

asp.net调用带有输入和输出参数的存储过程

存储过程检测用户名是否重户 create proc checklogin@username nchar(20),@pwd nchar(20),@hasrow int outputasselect @hasrow=count(*) from users where and GO存储过程写入数据create proc adduser@username nchar(20),@pwd nchar(20)asbegininsert into users (username,pwd)values(@user

输入和输出--File类

输入和输出 写在前面的:Java中的输入和输出还是比较重要的,之前我都没想整理IO和多线程的,但是在研究后面的好多东西时候,经常要读取资源文件,这个时候就不得不回过头来整理IO了.要玩熟Java的输入和输入,就必须先玩熟一个类:File.然后在就是Java.io包下的类和接口了.Java的IO主要包括了输入和输出2种流,每种输入和输出又分为字节流和字符流.值得注意和研究的是Java的IO流使用了一种装饰器设计模式,它将IO流分成底层节点流和上层处理流.除此之外,还要研究2个东西:1,Java对象

java Servlet+mysql 调用带有输入参数和返回值的存储过程(原创)

这个数据访问的功能,我在.NET+Mysql .NET+Sqlserver  PHP+Mysql上都实现过,并且都发布在了我博客园里面,因为我觉得这个功能实在是太重要,会让你少写很多SQL语句不说,还能提高程序的执行效率, 今天在JAVA+Mysql上也实现了这个功能下面我贴出代码,这次我会讲详细点,让看的朋友能更加清楚它的好处在哪里. 一.封装的代码存储过过程调用方法   关于返回类CallableStatement的解释: CallableStatement 对象为所有的DBMS 提供了一种

java 调用 sql server存储过程

Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行. 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数.输出参数.返回单个或多个结果集以及返回值. 由于存储过程在创建时即在数据库服务器上进

Java调用存储过程返回数组

Java调用存储过程: 结合SQL操作与存储过程 create procedure set_death_age(poet VARCHAR2, poet_age NUMBER) poet_id NUMBER; begin SELECT id INTO poet_id FROM poets WHERE name = poet; INSERT INTO deaths (mort_id, age) VALUES (poet_id, poet_age); end set_death_age; 下面是调用上

Java调用MySQL存储过程

Java调用MySQL的存储过程,需要用JDBC连接,环境eclipse 首先查看MySQL中的数据库的存储过程,接着编写代码调用 mysql> show procedure status; +------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------

oracle存储过程及Java调用

初次研究出bug的地方非常多,所以注意点非常多,花了我三天时间除尽所有bug,我会把注意点都列出来,可能有落下的地方,还请多指正,相互探讨. 首先上最终测试成功版存储过程代码:(里面代码可能不尽对你都有用,借鉴参考吧,我全贴出来也是为了我以后好查) 说一下jar包用的是ojdbc14.jar,至于什么class12.jar.ojdbc6.jar啊应该都可以,只要一种就可以了. 说说我的需求,以便让大家更顺利的看懂我的代码,我的需求是:存储过程从Java端接收两个参数userid(用户)和topi

Java学习笔记—第十章 数据输入与输出

第十章  数据输入与输出 输入流与输出流: (1)输入流:以程序为基准,向程序中输入数据的流定义为输入流.从输入流向程序中输入数据称为读数据(read). (2)输出流:以程序为基准,从程序输出数据的流称为输出流.从程序中将数据输出到输出流称为写数据(write). 字节流和字符流 (1)字节流:按照字节的形式读/写数据.Java中抽象类InputStream和OutputStream及其派生子类用来处理字节流的输入和输出. (2)字符流:按照字符的形式读/写数据.Java中抽象类Reader和