一:先看几个概念:
首先,自己参考了几篇文章,写的很不错,自己也借鉴一下,然后会在最后贴出自己在项目中使用到的存储过程,已经实现过程,大家可以做个对比,实现方法不同。http://www.cnblogs.com/liunanjava/p/4261242.html
过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快。不同之处是函数必须指定返回类型。
Java调用结构:
存储过程:{call <procedure-name>[(<arg1>,<arg2>, ...)]}
函数:{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}。
如果要调用存储过程,则使用第一种语法,就是开头不带问号的语法,call 后面是过程名,
如果没有参数,可以省略小括号。
如果要调用函数,则使用第二种语法,开头带有一个问号加等号,实际上这个问号就是一个占位符,这个问号总是调用函数的第一个占位符。其它部分与过程的语法相同。
二、CallableStatement 执行存储过程:
2.1、建立基类
2.2、执行不带参但是有返回值的存储过程
下面建立存储过程
调用
2.3、执行带参带返回值的存储过程
2.4、执行返回值为游标的存储过程
以上看出,需要将输出的参数,和结果注册,输入的参数不要注册,
但输入参数需要设置占位符。
三、执行函数。
3.1 、函数功能为根据雇员id 返回姓名
其它的方法与过程一样,只是多了个返回值类型。
------------------------------------------------------------------
四:接下来说下自己项目中的,直接看代码。
创建储存过程的代码基本一样,只是Java调用存储过程的时候,跟上边调用的方法不同,大家可以自行理解:
4.1:更新订单状态,返回状态值
4.2:Java调用存储过程代码
4.3:再附上两段代码,有关Java调用储存过程的
4.4:最后一张图片--mysql执行储存过程