java中调用数据库中的存储过程和函数

public static void main(String[] args)
 

   {
        Connection conn =getConnection(url,user, pwd);
        System.out.println("数据连接成功");
        CallableStatement cs=null;
        try
        {    //调用数据库中的存储过程
             cs = conn.prepareCall("{call pro_deleteproducttype(?,?)}");//pro_deleteproducttype是//要调用的存储过程的名字,第一个参数是整形输入参数,第二个参数是输出参数
             //设置存储过程的输入参数
            cs.setInt(1, 24);
            //设置存储过程返回值类型,并执行
            cs.registerOutParameter(2, java.sql.Types.VARCHAR);
            cs.execute();
            //接收返回值,并打印
            String str = cs.getString(2);

            System.out.println(str);
 
//调用数据库函数
               cs1 = conn.prepareCall("{?=call fun_str()}"); //其中 fun_str() 是函数名,?是返回值的占位符
cs1.registerOutParameter(1, java.sql.Types.VARCHAR); 
 cs1.execute(); 
  String string1=cs1.getString(1); 
 System.out.println(“函数调用的结果是:”+string1);
        }
        catch (SQLException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally
        {//关闭所有连接
            closeAll(conn, cs, null);
        }
    }
posted @ 2016-02-05 10:34  kabibo  阅读(1250)  评论(0编辑  收藏  举报