1.调用函数

{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}

{call <procedure-name>[(<arg1>,<arg2>, ...)]}*/

public int testFunction() {

String sql = "{?= call cal_add(?, ?)}";

conn = DBHelper.getOracleConnection();

int r = -1;

try {

cs = conn.prepareCall(sql);

cs.registerOutParameter(1, OracleTypes.NUMBER);

cs.setInt(2, 5);

cs.setInt(3, 7);

cs.execute();

r = cs.getInt(1);

} catch (SQLException e) {

e.printStackTrace();

}

DBHelper.destroy(conn, cs, rs);

return r;

}

2. 调用存储过程

public void testProcedure() {

String sql = "{call myprowithout(?,?,?)}";

conn = DBHelper.getOracleConnection();

try {

cs = conn.prepareCall(sql);

cs.setInt(1, 109);

cs.registerOutParameter(2, OracleTypes.VARCHAR);

cs.registerOutParameter(3, OracleTypes.VARCHAR);

cs.execute();

System.out.println(cs.getString(2));

System.out.println(cs.getString(3));

} catch (SQLException e) {

e.printStackTrace();

}

DBHelper.destroy(conn, cs, rs);

}

3.调用带游标的存储过程

public void testProcedureWithCursor() {

String sql = "{call print_stu.put_stuinfo(?,?)}";

conn = DBHelper.getOracleConnection();

try {

cs = conn.prepareCall(sql);

cs.setInt(1, 95031);

cs.registerOutParameter(2, OracleTypes.CURSOR);

cs.execute();

OracleCallableStatement ocs = (OracleCallableStatement)cs;

rs = ocs.getCursor(2);

while(rs.next()) {

System.out.print(rs.getString("sno")+"\t");

System.out.print(rs.getString("sname")+"\t");

System.out.print(rs.getString("ssex")+"\t");

System.out.print(rs.getDate("sbirthday")+"\t");

System.out.println(rs.getInt("class"));

}

} catch (SQLException e) {

e.printStackTrace();

}

DBHelper.destroy(conn, cs, rs);

}

java调用数据库中的函数和存储过程的更多相关文章

  1. java中调用数据库中的存储过程和函数

    public static void main(String[] args)    {         Connection conn =getConnection(url,user, pwd);   ...

  2. mysql中的函数与存储过程

    mysql中的函数:1 mysql下创建函数: 1.1 语法: delimiter $$ -- 设置分隔符,默认是; 设置成其他符号,让编译器知道我们函数编写的结束,此处设置成$$ create fu ...

  3. 在VS2012中采用C++中调用DLL中的函数 (4)

    这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...

  4. 在C++中调用DLL中的函数 (3)

    1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

  5. 在C++中调用DLL中的函数 (2)

    应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息. Visual C++6.0在VC\bin目录下提供了一个名为Dumpbin. ...

  6. 在C++中调用DLL中的函数

    如何在C++中调用DLL中的函数 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下 ...

  7. 【原创】在VS2012中采用C++中调用DLL中的函数(4)

    这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...

  8. 在C++中调用DLL中的函数(3)

    1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

  9. 在C++中调用DLL中的函数(2)

    本文转自:http://blog.sina.com.cn/s/blog_53004b4901009h3b.html 应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL ...

随机推荐

  1. k3 cloud列表中出现很多空白

    解决办法:找到单据体:过滤面板默认隐藏打勾

  2. neo4j图形数据库Java应用

    CREATE (陈冠希:明星 {名称: "陈冠希"}), (王菲:明星 {名称: "王菲"}), (李亚鹏:明星 {名称: "李亚鹏"}), ...

  3. Python Paramiko模块使用

    1 执行远程命令 #!/usr/bin/python import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_polic ...

  4. R语言——ifelse函数

    在数据处理中,经常会遇到要对判断结果做处理的情况.if函数是经常遇到的. ifelse(cond,statment1,statment2) 如果cond成立,执行statment1,否则执行statm ...

  5. ps:图层知识

    如果我们要改变下左图上方的蓝色小球位置,就需要先创建一个符合小球大小的选区,这并不困难,可以使用椭圆选框工具来创建一个正圆的选区(可通过[空格 CTRL 单击图像]放大图像).之后使用移动工具移动选区 ...

  6. php session之redis存储

    前提:redis已安装好. php代码: <?php ini_set("session.save_handler", "redis"); ini_set( ...

  7. bzoj4811 [Ynoi2017]由乃的OJ 树链剖分+贪心+二进制

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4811 题解 我现在为什么都写一题,调一天啊,马上真的退役不花一分钱了. 考虑这道题的弱化版 N ...

  8. 了解卷积神经网络如何使用TDA学习

    在我之前的文章中,我讨论了如何对卷积神经网络(CNN)学习的权重进行拓扑数据分析,以便深入了解正在学习的内容以及如何学习它. 这项工作的重要性可归纳如下: 它使我们能够了解神经网络如何执行分类任务. ...

  9. Windows10下安装Jupyter

    打开cmd 升级pip3的版本: pip3 install --upgrade pip 安装Jupyter pip3 install jupyter

  10. 【leetcode】1038. Binary Search Tree to Greater Sum Tree

    题目如下: Given the root of a binary search tree with distinct values, modify it so that every node has ...