java程序调用存储过程和存储函数
来源:互联网 发布:野火微博软件 编辑:程序博客网 时间:2024/05/16 12:00
java程序调用存储过程
jdbcUtil.java文件
package cn.itcast.oracle.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JDBCUtils {private static String driver = "oracle.jdbc.OracleDriver";private static String url = "jdbc:oracle:thin:@192.168.56.101:1521:orcl";private static String user = "scott";private static String password = "tiger";static{try {Class.forName(driver);} catch (ClassNotFoundException e) {throw new ExceptionInInitializerError(e);}}public static Connection getConnection(){try {return DriverManager.getConnection(url, user, password);} catch (SQLException e) {e.printStackTrace();}return null;}/* * 执行java程序 * java -Xms100m -Xmx200m HelloWorld * * 技术方向 * 1. 性能调优 * 2. 故障诊断: ThreadDump */public static void release(Connection conn,Statement st,ResultSet rs){if(rs != null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}finally{rs = null; //----> Java GC}}if(st != null){try {st.close();} catch (SQLException e) {e.printStackTrace();}finally{st = null;}}if(conn != null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}finally{conn = null;}}}}
testOracle.java
package cn.itcast.oracle.demo;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.ResultSet;import oracle.jdbc.OracleCallableStatement;import oracle.jdbc.OracleTypes;import org.junit.Test;import cn.itcast.oracle.utils.JDBCUtils;public class TestOracle {/*调用存储过程
* create or replace procedure queryEmpInfo(eno in number, pename out varchar2, psal out number, pjob out varchar2) */@Testpublic void testProcedure(){//{call <procedure-name>[(<arg1>,<arg2>, ...)]}String sql = "{call queryEmpInfo(?,?,?,?)}";Connection conn = null;CallableStatement call = null;try {conn = JDBCUtils.getConnection();call = conn.prepareCall(sql);//对于in参数,赋值call.setInt(1, 7839);//对于out参数,申明call.registerOutParameter(2, OracleTypes.VARCHAR);call.registerOutParameter(3, OracleTypes.NUMBER);call.registerOutParameter(4, OracleTypes.VARCHAR);//执行call.execute();//取出结果String name = call.getString(2);double sal = call.getDouble(3);String job = call.getString(4);System.out.println(name+"\t"+sal+"\t"+job);} catch (Exception e) {e.printStackTrace();}finally{JDBCUtils.release(conn, call, null);}}/*调用存储函数
* create or replace function queryEmpIncome(eno in number)return number */@Testpublic void testFunction(){//{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}String sql = "{?=call queryEmpIncome(?)}";Connection conn = null;CallableStatement call = null;try {conn = JDBCUtils.getConnection();call = conn.prepareCall(sql);//对于out参数,申明call.registerOutParameter(1, OracleTypes.NUMBER);//对于in参数,赋值call.setInt(2, 7839);//执行call.execute();//取出结果double income = call.getDouble(1);System.out.println(income);} catch (Exception e) {e.printStackTrace();}finally{JDBCUtils.release(conn, call, null);}}
在out参数中使用光标
@Testpublic void testCursor(){String sql = "{call MYPACKAGE.queryEmpList(?,?)}";Connection conn = null;CallableStatement call = null;ResultSet rs = null;try {conn = JDBCUtils.getConnection();call = conn.prepareCall(sql);call.setInt(1, 20);call.registerOutParameter(2, OracleTypes.CURSOR);call.execute();//取出集合rs = ((OracleCallableStatement)call).getCursor(2);while(rs.next()){String name = rs.getString("ename");double sal = rs.getDouble("sal");System.out.println(name+"\t"+sal);}} catch (Exception e) {e.printStackTrace();}finally{JDBCUtils.release(conn, call, rs);}}
0 0
- Oracle存储过程、存储函数以及Java程序调用存储过程和存储函数
- java程序调用存储过程和存储函数
- 【4】Oracle_Java程序调用存储过程和存储函数
- java调用存储过程和函数
- Java调用Oracle数据库存储过程和存储函数
- oracle--在java中调用存储过程和存储函数
- Java 程序调用存储过程
- 调用存储过程和函数
- JAVA存储过程和调用
- mysql 创建存储过程 java程序调用该存储过程
- oracle 存储过程编写和java程序调用oracle存储过程
- java下实现调用oracle的存储过程和函数
- java下实现调用oracle的存储过程和函数
- java下实现调用oracle的存储过程和函数
- java下实现调用oracle的存储过程和函数
- Java中使用ibatis调用Oracle存储过程和函数
- java下实现调用oracle的存储过程和函数
- Java调用Oracle存储过程和函数(三)
- sde for Oracle10g 64bit 删除 SDE用户无法删除的问题
- 结构体的使用
- mysql server advanced 5.6安装
- cocos2d-x 3.2文件读写(普通文件,plist,xml)
- 喜欢玩warcraft的ltl
- java程序调用存储过程和存储函数
- HelloWorld
- Android多媒体:实现图像的编辑和合成
- PHP错误处理机制抛出错误类型
- Android进程与线程基本知识
- JSON与JAVA数据的转换
- eclipse 远程服务器端代码调试
- FAQ
- Android Launcher分析和修改3——Launcher启动和初始化