JDBC学习中存储过程的调用

                  

            在Java开发中我们在很多情况下都会用到存储过程,因此我们对于存储过程的掌握也应该是非常熟练的了,这里,我仅简单提及。

 以前我们经常在命令窗口中以命令的形式来创建存储过程,并通过对存储过程的操作,来实现对数据库中数据的管理。

        

      

                  这样我们就通过命令创建了一个带有三个参数的存储过程,再通过参数的设定如:

       

就可以实现向数据库的相应表中插入数据了。

再如我们通过:

  

命令,就创建了带有一个输入参数,两个输出参数的存储过程了,再通过对存储过程的调用,我们就可以查看数据库表中的相应内容了如:

   

以上这些都是我们通过命令窗口来实现的与数据库的连接交互,那么,我们如何通过程序达到对存储过程的调用呢?

 下面,我以两段程序来达到与上述命令窗口中实现的效果:

该方法创建了一个带有输出参数的存储过程,并通过对该存储过程的调用,来达到

对相应数据查看的效果。

publicvoid getProcedureOut(){

              con = DBCManager.getConnect();//获取连接对象

             

              try {

                 

                  //通过连接对象conprepareCall()方法得到 CallableStatement对象 cs

               CallableStatement cs = con.prepareCall("{callmeOut(?,?,?)}");

                 

                  //为输入参数段赋值

                 

                  cs.setInt(1, 1);

                  //注册输出参数的返回值类型

                  cs.registerOutParameter(2, Types.VARCHAR);

                  cs.registerOutParameter(3, Types.INTEGER);

                  //执行语句

                  cs.execute();

                  //获取字段的值并输出

                  System.out.print("name:"+cs.getString(2)+"\t age:"+cs.getInt(3));

                 

                 

                 

              } catch (SQLException e) {

                  // TODO Auto-generatedcatch block

                  e.printStackTrace();

              }

              DBCManager.release(rs, ps, con);

           }

     该方法创建了一个带有输入参数的存储过程,并通过对该存储过程的调用,来达到向数据库中的表内录入数据的功能。

 

           publicvoid getProcedureIn(){

              con = DBCManager.getConnect();//获取连接对象

             

              try {

                 

                  //通过连接对象conprepareCall()方法得到 CallableStatement对象 cs

                  CallableStatement cs = con.prepareCall("{call me(?,?,?)}");

                 

                  //为输入参数段赋值

                 

                  cs.setInt(1, 7);

                  cs.setString(2, "lang");

                  cs.setInt(3,30);

                  //设置返回标志

                  boolean flag;

                  //执行语句

                   flag =cs.execute();

                   

                   if(!flag){

                      System.out.print("插入成功!");

                   }

                 

                 

                 

              } catch (SQLException e) {

                  // TODO Auto-generatedcatch block

                  e.printStackTrace();

              }

              DBCManager.release(rs, ps, con);

           }

   通过存储过程,我们便可以以更加简便的方式,来实现对数据库中数据的操作了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值