hello world

随笔 - 2, 文章 - 63, 评论 - 0, 引用 - 0
数据加载中……

JAVA调用数据库的存储过程

下午调试了一个调用数据库存储过程的片段,居然弄了两三个小时,下边小小总结一下。
关键代码:
1    String sql="CALL pkg_rfts_global.sp_gui_delete_Object(?)";
2    CallableStatement inoutProc=(CallableStatement) conn.prepareCall(sql);
3    inoutProc.registerOutParameter(1,4);
4    inoutProc.setInt(1,9450);
5    inoutProc.execute();
6    inoutProc.close();

整个过程就如上了,sql就是一个存储字符串的变量;con是事先已经和数据库连接好的连接(Connection类);inoutProc就是CallableStatement 类的一个实例;
第一句话就是要执行的命令语句,pkg_rfts_global是包名,sp_gui_delete_Object是存储过程名,看老师给我们演示时还有在最前面加入登陆用户名的,这里没有也通过了,可能是已经登陆的原因。小括号里是变量,这里是在存储过程中定义的,这个存储过程就定义了一个变量。第三行是设置变量输出时的大小,如registerOutParameter方法指定了上述的第一个参数大小为4;第三句话是设置参数,setInt方法设置了第一个参数的整形值为9450;第五句话开始执行这个语句;最后关闭。
出现的问题(因为是第一次用,很弱智的说):
1、没有加CALL;
2、在语句后面多了一个“;”;

再贴几句话:
                cs.registerOutParameter(2, java.sql.Types.INTEGER);
                cs.registerOutParameter(4, java.sql.Types.VARCHAR);
                cs.registerOutParameter(10, java.sql.Types.FLOAT);
                cs.registerOutParameter(20, java.sql.Types.VARCHAR);
cs和inoutProc是一个类型了,这是在定义变量输出时大小的另外一种方法。

posted on 2008-07-22 15:46 听风 阅读(263) 评论(0)  编辑  收藏 所属分类: JAVA


只有注册用户登录后才能发表评论。


网站导航: