初学者入门程序调用存储过程小结
2021-10-29 04:55:55 兴城星座网
学生在学习jdbc的时候,会问到怎么调用存储过程,现在将java调用oracle存储过程的示例总结如下。(关于调用sqlserver的存储过程将在下次进行小结请关注)
一:无返回值的存储过程
存储过程为:
? create or replace procedure adddept(deptno number,dname varchar2,loc varchar2)
? as
? begin
? insert into dept values(deptno,dname,loc);
? end;
然后呢,在java里调用时就用下面的代码:
? public class TestProcedure {
? Connection conn=null;
? CallableStatement cstmt=null;
? PreparedStatement pstmt=null;
? String url=\"jdbc:oracle:thin:@localhost:1521:mydb\";
? String driver=\"acleDriver\";
? String name=\"\";
? public TestProcedure() {
? try{
? rName(driver);
? conn=tConnection(url,\"scott\",\"tiger\");
? cstmt=epareCall(\"{call adddept(?,?,?)}\");
? tInt(1,13);
? tString(2,\"间谍部2\");
? tString(3,\"ningbo2\");
? ecuteUpdate();
?
? intln(\"success\");
? }
? catch(Exception e){intStackTrace();}
? finally{
? ose();
? ose();
? }
? }
? }
dept表为oracle数据库方案scott中的一个表
二:有返回值的存储过程(非列表)
存储过程为:
CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2) AS
BEGIN
SELECT INTO PARA2 FROM TESTTB WHERE I_ID= PARA1;
END TESTB;
在java里调用时就用下面的代码:
package c;
public class TestProcedureTWO {
public TestProcedureTWO() {
}
public static void main(String[] args ){
String driver = \"acleDriver\";
String strUrl = \"jdbc:oracle:thin:@127.0.0.1:1521:hyq\";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
rName(driver);
conn = tConnection(strUrl, \" hyq \", \" hyq \");
CallableStatement proc = null;
proc = epareCall(\"{ call STB(?,?) }\");
tString(1, \"100\");
gisterOutParameter(2, RCHAR);
ecute();
String testPrint = tString(2);
intln(\"=testPrint=is=\"+testPrint);
}
catch (SQLException ex2) {
intStackTrace();
}
catch (Exception ex2) {
intStackTrace();
}
finally{
try {
if(rs != null){
ose();
if(stmt!=null){
ose();
}
if(conn!=null){
ose();
}
}
}
catch (SQLException ex1) {
}
}
}
}
}
注意,这里的tString(2)中的数值2并非任意的,而是和存储过程中的out列对应的,如果out是在第一个位置,那就是tString(1),如果是第三个位置,就是tString(3),当然也可以同时有多个返回值,那就是再多加几个out参数了。
三:返回列表
由于oracle存储过程没有返回值,它的所有返回值都是通过out参数来替代的,列表同样也不例外,但由于是集合,所以不能用一般的参数,必须要用pagkage了.所以要分两部分,
1, 建一个程序包。如下:
CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
end TESTPACKAGE;
2,建立存储过程,存储过程为:
CREATE OR REPLACE PROCEDURE TESTC(p_CURSOR out st_CURSOR) IS
BEGIN
OPEN p_CURSOR FOR SELECT * FROM STTB;
END TESTC;
可以看到,它是把游标(可以理解为一个指针),作为一个out 参数来返回值的。
在java里调用时就用下面的代码:
package c;
import l.*;
import tputStream;
import iter;
import eparedStatement;
import sultSet;
import iver.*;
public class TestProcedureTHREE {
public TestProcedureTHREE() {
}
和各园区合作进行统借统贷服务 public static void main(String[] args ){
String driver = \"acleDriver\";
String strUrl = \"jdbc:oracle:thin:@127.0.0.1:1521:hyq\";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
rName(driver);
conn = tConnection(strUrl, \"hyq\", \"hyq\");
CallableStatement proc = null;
proc = epareCall(\"{ call stc(?) }\");
gisterOutParameter(1,RSOR);
ecute();
rs = (ResultSet)tObject(1);
while(xt())
{
intln(\"
\" + tString(1) + \"\"+tString(2)+\"\");
}
}
catch (SQLException ex2) {
intStackTrace();
}
catch (Exception ex2) {
intStackTrace();
}
finally{
try {
if(rs != null){
ose();
if(stmt!=null){
ose();
}
if(conn!=null){
ose();
}
}
}
catch (SQLException ex1) {
}
}
}
}
查看本文来源
昆明治疗早泄医院深圳治疗白癜风医院费用
上海治白癜风哪家医院好
- 上一篇:初学者入门学习要有的个目标的
- 下一篇:初学者入门如何将生成可执行文件物业
-
新地香港“NOVO LAND”第1A期已获批预售楼花仍须
论调网讯:7月6日,新地代理总经理陈汉麟表示,旗下屯门住宅区演进计划“NOVO LAND”第1A期已获批预售楼花同意书,最快下星期放上楼书及开放;还有单...
摩羯座2023.09.10
-
这4种花生最适合放冰箱冷冻,比雪糕更好吃,凉爽过夏不用慌
这两天真是阳光正好的日子,进去的烈阳让我们怕回去,很多人都自己家里面新立了很多的汽水和零食,就是为了都能随时随地都能舒爽。但是零食和汽...
摩羯座2023.09.06
-
衰退担忧便市场恐惧 投资者逃离几乎所有主要资产类别
只不过一周投资者逃离几乎所有主要资产类别,仅美股和美债从未遭遇大现有财力外流,零售商担忧货币政策紧缩将加剧世界各地主要世界银行陷入衰落...
摩羯座2023.09.03
-
看考场不是走过场,2022中考考场踩点注记,踩点前必看!
对于将要参与初高中的小伙伴们来说,到贡院“踩点”则是初高中之外的另一件大事了,“踩点”即出名贡院,那么出名贡院主要是出名哪些地方呢? 踩...
摩羯座2023.09.01
-
上海嘉定:“我嘉货栈”打造出“家门口的便民店”
便民店开到城里面村门口、以村居为单位创立集里面供应点……亦同,在武汉镇江区,为了让生活习惯战略物资保供“买得到”,各种不断创新对政府陆...
摩羯座2023.08.31
-
两只小男孩的错位狗生
都却说小狗不辩称家贫,但是网上的一只柯基可能才会创下你的认识。这只柯基小狗小狗多才多艺BMW,不论是在车库里还是在人行道上总能准确无误地停...
摩羯座2023.08.31
-
杨颖为什么能红?除了资本的背书,她本人也是万中无一的奇才!
知道是幸苦杨颖背后的企业了,他们找到这样一个人,较易吗? 要被选为预备队容量电影明星,首要的一条就是美貌 不要知道,美貌在娱乐界里头都是...
摩羯座2023.08.30
-
腰方肌阻滞可减轻针灸肾上腺切除术患者术后的疼痛并促进康复:一项随机对照试验
笔记:米勒之声 来源:PUMCH止痒大讲堂 本期介绍上海医院止痒科袁青、崔旭蕾等人于2021年11月在BMC Anesthesiology杂志刊载的论文“Transmuscular quadratus lumbor...
摩羯座2023.08.29
-
草鱼的正确吃法,除了煎煮油炸,还有除此以外爆鱼
的单爆鱼为 材料: 螃蟹为500g,小葱5钉,水少许,鲜肉1盆,生抽1盆,叔5片,食用油适总量。 调味料 汁: 混合物500g,红门3个,白皮1块,萝卜20颗左右...
摩羯座2023.08.28
-
吕梁政协书画院举办刘明宗先生书法作品展
6月27日,政协委员书画院“逸钱博学多才墨痕——陈穆宗先生书法杰作展”举行开展仪式。本次特展是向社会党的101华诞深情献礼,也是政协委员建设周...
摩羯座2023.08.28