oracle学习笔记2之有返回列表的存储过程
来源:互联网 发布:淘宝服装模特 编辑:程序博客网 时间:2024/05/29 12:15
建表sql
CREATE TABLE student( student_id NUMBER PRIMARY KEY, student_name vARCHAR2(30) NOT NULL) insert into STUDENT (STUDENT_ID, STUDENT_NAME) values (1, '张三'); insert into STUDENT (STUDENT_ID, STUDENT_NAME) values (2, '李四'); insert into STUDENT (STUDENT_ID, STUDENT_NAME) values (3, '王五'); insert into STUDENT (STUDENT_ID, STUDENT_NAME) values (4, '马六'); insert into STUDENT (STUDENT_ID, STUDENT_NAME) values (5, '孙七'); insert into STUDENT (STUDENT_ID, STUDENT_NAME) values (6, '王八');
创建包
create or replace package testpackage as type Test_CURSOR is ref cursor;end testpackage;
创建存储过程create or replace procedure testc(p_cursor out testpackage.Test_CURSOR)isbegin open p_cursor for select * from student;end testc;
java调用
package com.anxin.util;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Types;public class DBAccess {public DBAccess() {}public static Connection getConnection(String type) {Connection conn = null;String url = "";String user = "";String password = "";String driverName = "";if (type.equals("mysql")) {url = "jdbc:mysql://localhost:3306/file?characterEncoding=utf8";user = "root";password = "123";driverName = "com.mysql.jdbc.Driver";} else if (type.equals("oracle")) {url = "jdbc:oracle:thin:@localhost:1521:anxin";user = "system";password = "123456";driverName = "oracle.jdbc.driver.OracleDriver";}try {Class.forName(driverName);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blockSystem.out.println("驱动程序未找!");e.printStackTrace();}try {conn = DriverManager.getConnection(url, user, password);} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("数据库连接出错啦!");e.printStackTrace();}System.out.println("Connection连接成功!");return conn;}public static void main(String[] args) throws Exception {// TODO Auto-generated method stubConnection connection = getConnection("oracle");connection.setAutoCommit(false);CallableStatement cal=null;//cal=connection.prepareCall("call insertStu(?,?,?)");//cal.setInt(1, 34);//cal.setString(2, "李蓓");//cal.registerOutParameter(3,Types.INTEGER);//cal.execute();//System.out.println(cal.getInt(3));cal=connection.prepareCall("call testc(?)");cal.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);cal.execute();ResultSet rs = (ResultSet)cal.getObject(1);while(rs.next()) { System.out.println("<tr><td>" + rs.getInt(1) + "</td><td>"+rs.getString(2)+"</td></tr>"); }}}
输出结果:
学生ID=1,学生姓名Name=张三
学生ID=2,学生姓名Name=李四
学生ID=3,学生姓名Name=王五
学生ID=4,学生姓名Name=马六
学生ID=5,学生姓名Name=孙七
学生ID=6,学生姓名Name=王八
- oracle学习笔记2之有返回列表的存储过程
- java oracle 存储过程(有返回值)返回列表--》学习二(转载+修改)
- Oracle有返回值的存储过程
- oracle 存储过程返回列表
- java 调用 oracle存储过程返回列表
- java调用有返回值的oracle存储过程
- ibatis 调用有返回集合的存储过程 oracle
- oracle学习笔记之存储过程
- Oracle 笔记之 存储过程的使用
- oracle学习笔记之存储过程与存储函数
- java连接oracle数据库调用返回列表的oracle存储过程
- oracle 存储过程学习笔记
- Oracle存储过程学习笔记
- Oracle存储过程学习笔记
- Oracle存储过程学习笔记
- Oracle存储过程之带有返回参数
- oracle学习之存储过程(2)注意
- 使用有返回参数的存储过程
- Linux netcat(CMD: nc) 基本使用
- comm 串口
- Mongodb for PHP教程之入门安装
- emacs shell ls 显示问题
- 在.NET中利用SQLite ADO.NET使用SQLite数据库
- oracle学习笔记2之有返回列表的存储过程
- 正确实现 IDisposable 接口
- Delphi 添加系统托盘
- netbeans查看文件地址插件
- Lowest Bit
- C#TreeView数据绑定+拖动节点
- Java NIO 详解
- 设置或读取config文件(winform)
- java程序员学习Flex和BlazeDS的好处