java调用数据库中的函数和存储过程
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调用数据库中的函数和存储过程的更多相关文章
- java中调用数据库中的存储过程和函数
		
public static void main(String[] args) { Connection conn =getConnection(url,user, pwd); ...
 - mysql中的函数与存储过程
		
mysql中的函数:1 mysql下创建函数: 1.1 语法: delimiter $$ -- 设置分隔符,默认是; 设置成其他符号,让编译器知道我们函数编写的结束,此处设置成$$ create fu ...
 - 在VS2012中采用C++中调用DLL中的函数 (4)
		
这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...
 - 在C++中调用DLL中的函数 (3)
		
1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...
 - 在C++中调用DLL中的函数 (2)
		
应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息. Visual C++6.0在VC\bin目录下提供了一个名为Dumpbin. ...
 - 在C++中调用DLL中的函数
		
如何在C++中调用DLL中的函数 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下 ...
 - 【原创】在VS2012中采用C++中调用DLL中的函数(4)
		
这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...
 - 在C++中调用DLL中的函数(3)
		
1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...
 - 在C++中调用DLL中的函数(2)
		
本文转自:http://blog.sina.com.cn/s/blog_53004b4901009h3b.html 应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL ...
 
随机推荐
- 判断当前终端是手机还是pc端并进行不同的页面跳转
			
判断当前设备(终端)是手机还是pc端并进行不同的页面跳转 DEMO 1 <script type="text/javascript"> function browser ...
 - c知识点总结2
			
函数 int func(int x){ //x:形式参数 .... } int main(){ .... int res=func(z); //z:实际参数 } 实参与形参具有不同的存储单元, 实参与 ...
 - wxpython菜单栏、子菜单栏、弹出菜单栏、状态栏小程序学习源代码分享
			
#coding=utf-8 import wx class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1, ...
 - Vue-cli2项目文件目录解析
			
前言 不是原创,真的不是原创,主要我是根据CSDN的一篇文章和其他平台上的文章整理而来,在最后我会贴上所有原文的地址,下面正式进入正文. Vue-cli项目文件目录结构 这个是Vue-cli2.0版本 ...
 - Windows平台网站图片服务器架构的演进
			
在主流的Web站点中,图片往往是不可或缺的页面元素,尤其在大型网站中,几乎都将面临“海量图片资源”的存储.访问等相关技术问题.在针对图片服务器的架构扩展中,也会历经很多曲折甚至是血泪教训(尤其是早期规 ...
 - HBase HA分布式集群搭建
			
HBase HA分布式集群搭建部署———集群架构 搭建之前建议先学习好HBase基本构架原理:https://www.cnblogs.com/lyywj170403/p/9203012.html 集群 ...
 - jquery 点击加载更多
			
html部分 <ul class="bill moreadd"> <div class="total"><span>-< ...
 - noscript
			
<noscript> <article id="noscript" class="error info_panel"> <head ...
 - 基于Xilinx Kintex-7 XC7K325T 的FMC USB3.0 SATA 四路光纤数据转发卡
			
基于Xilinx Kintex-7 XC7K325T 的FMC USB3.0 SATA 四路光纤数据转发卡 1. 板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片, ...
 - [译]深度学习(Yann LeCun)
			
深度学习 严恩·乐库 约书亚•本吉奥 杰弗里·希尔顿 摘要深度学习是计算模型,是由多个处理层学习多层次抽象表示的数据.这些方法极大地提高了语音识别.视觉识别.物体识别.目标检测和许多其他领域如药物 ...