`
2277259257
  • 浏览: 515680 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

存储过程

 
阅读更多

JDBC 常用 API
  DriverManager 类 驱劢管理器 , 用于获得 Connection 对象
  Connection 接口  连接对象 , 用于获得获得 Statement 对象
  Statement 用于执行静态 SQL 并可返回结果的对象
  PreparedStatement 继承自 Statement , 预编译的 Sql 语句对象
  CallableStatement 继承自 PreparedStatement , 用于执行存储过程

  ResultSet 查询返回的数据库结果集
  结果集相当于数据库中的游标( cursor )
  next()方法的功能  包括两个劢作:下移一行 , 并判断下一行有没有数据

 

存储过程 && 通过 JDBC API 调用存储过程 *
1)  存储过程( Stored Procedure,简称 SP , 也称为 Procedure , 过程 )存储过程( Stored Procedure )是在大型数据库系统中 , 一组完成特定功能的 SQL 语句集 , 经编译后存储在数据库中 , 用户通过指定存储过程的名字及参数来执行它。
2)  函数( function )
  to_char / nvl / coalesc 等都是 Oracle 数据库的内置函数
  自己写的函数和 Procedure 功能类似 , 类似于 java 中的方法。
  过程和函数都是驻留在数据库中的程序块
  过程可以有返回值也可以没有 , 函数必须有返回值
3)  数据库编程
  在数据库中编译好程序块 , 实现特定的功能
4)  优势:提高效率
  最大限度的减少 I/O
  已经编译过的过程 , 减少编译时间
5)  每条 sql 语句对应一个执行计划( Explain Plan ) , 缓存中保持一定数量的sql 语句解析结果和
它的执行计划

 

数据准备:

1)  创建 user_xxx 表
   create table user_xxx(
           id number(4) ,
           password char(4) ,
           name char(20) ,
           phone char(20) ,
           email varchar2(50)
    ) ;
    insert into user_xxx  values( 1001 , '1234' , 'liucs' , '13600000000' , 'liucs@sina.com' ) ;

 

创建存储过程: 
    create or replace procedure checkUser_xxx(
         p_userid in char ,                                          -- in 表示输入( 入口 , 默认值 )
         p_pwd in char ,
         flag out number                                             -- out 表示输出( 出口 )
    )
    is   v_password char(4) ;                                    -- 定义变量
    begin                                                                  -- begin 和 end 之间为程序体
         select password into v_password from user_xxx  where id = p_userid ;

         if  v_password = p_pwd   then  flag := 1 ;      -- “:=”表示赋值 , "="表示比较

         else   flag := 0 ;
         end if ;
   exception --当出现异常 , 程序会跳到这里执行
        when  others  then    flag := -1 ;                     --flag 赋值
   end ;
   /                                                                          -- "/"表示执行创建过程的语句

 

 ------------------------------------------------------------------------------------------------------------

    create or replace procedure update_emp(
         p_id     in number ,                                          -- in 表示输入( 入口 , 默认值 )
         p_newSalary  in number ,
         flag out number                                             -- out 表示输出( 出口 )
    )
    is                                     

    begin                                                                  -- begin 和 end 之间为程序体
         update emp_xxx  set  salary = p_newSalary  where empno =p_id;

         flag := SQL%ROWCOUNT ;      -- “:=”表示赋值 , "="表示比较

         commit;   

   end ;
   /   

程序中调用存储过程:

public  int  checkUser(User  user){

   int  flag = - 2;

   String  sql =" {call  checkUser_xxx(? ,? ,?)} ";  //调用过程的语法

   String  sql ="{call  update_emp(? ,? ,?)}";  //调用过程的语法

 

  Connetct  conn =DriveManager("url","userId","pwd");

  CallableStatement  call =null;

  try{

       call=conn.prepareCall(sql);//预处理

       call.setInt(1,user.getId());

       call.setString(2,user.getPwd());

       call.setDouble(2,user.getSalary());

       call.registerOutParameter(3,Types.INTEGER);

       call.execute();

       flag = call.getInt(3);  //取得存储过程的返回值 

  }catch(SQLException  e){

        e.printStackTrace();     

  }finally{

        call.close();

        conn.close();

  }

 return  flag;

}

 

 

 

 

分享到:
评论

相关推荐

    SAP HANA 中调试存储过程

    SAP HANA是一个高性能的内存数据库系统,它提供了一系列功能强大的工具来进行数据分析、应用开发、存储过程编写等操作。其中,对于存储过程的调试是开发者日常开发工作中的一个重要环节,SAP HANA为存储过程提供了...

    SQL存储过程试题及答案

    SQL存储过程试题及答案 SQL存储过程是数据库中的一种程序单元,能够完成特定的数据库操作。今天,我们将讨论三道关于SQL存储过程的试题,这些试题涵盖了存储过程的创建、调用和参数传递等方面。 1. 创建分数存储...

    pb调用存储过程

    在IT行业中,数据库操作是日常开发中的重要环节,而存储过程是数据库中一种高效、封装性强的预编译语句集合。本问题涉及到的是在PowerBuilder(简称Pb)环境中如何调用Oracle或SQL Server等数据库中的存储过程。以下...

    db2 存储过程语法与实例

    DB2存储过程是一种在数据库管理系统中预编译的SQL代码集合,它允许开发人员封装复杂的业务逻辑和数据处理操作,并可以被多次调用。DB2作为一款强大的关系型数据库管理系统,其存储过程功能强大,提高了应用程序的...

    pl sql developer调试存储过程及调试包中创建的存储过程

    PL/SQL Developer 调试存储过程及调试包中创建的存储过程 PL/SQL Developer 调试存储过程是指使用 PL/SQL Developer 工具来调试 Oracle 数据库中的存储过程。调试存储过程可以帮助开发者快速地定位和解决存储过程...

    数据库查询的存储过程

    数据库查询的存储过程 数据库查询的存储过程是数据库管理系统中一种非常重要的概念。它可以将多个SQL语句组合成一个单元,提高数据库的查询效率和性能。 存储过程的优点: 1. 可以在单个存储过程中执行一系列SQL...

    存储过程的优点

    ### 存储过程的优点 #### 一、提升执行效率 1. **编译优势**:存储过程在创建时仅编译一次,之后每次执行时都无需再次编译。相比之下,一般的SQL语句每次执行都需要重新编译。这种差异使得存储过程能够显著提高...

    mysql存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...

    SQL Server存储过程

    **SQL Server 存储过程详解** SQL Server 存储过程是一种预编译的数据库对象,它集合了一系列的SQL语句和控制流语句,用于执行特定的数据库操作。存储过程的作用在于提高数据库的性能和安全性,减少网络流量,提供...

    oracle存储过程学习经典入门

    本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...

    oracle 存储过程 函数 dblink

    ### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...

    C# winform调用SQL存储过程-菜鸟入门 详细注释

    内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...

    MySQL存储过程的异常处理方法

    在MySQL中,存储过程是一种预编译的SQL代码集合,它可以执行复杂的操作并提供更好的性能。在编写存储过程时,异常处理是确保程序稳定性和健壮性的重要环节。本实例展示了如何在MySQL存储过程中实现异常处理,以捕获...

    用友r9知识存储过程

    《用友R9知识存储过程详解》 在IT行业中,特别是在企业级财务系统中,数据库的高效管理和数据处理是至关重要的。用友R9作为一款先进的财务管理系统,它利用存储过程这一强大的数据库功能来优化账务处理,提高系统...

    学习sql存储过程的心得

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,它们被预先编译并存储在数据库中,可以通过一个名称来调用执行。学习SQL存储过程是提升数据库管理和应用开发效率的关键步骤,它可以帮助我们更好...

    创建存储过程,触发器

    在数据库管理中,存储过程和触发器是两个重要的概念,它们极大地增强了数据库的功能和效率。存储过程是一组预先编写的SQL语句,可以被多次调用,减少了网络流量,提高了性能,并提供了更好的安全性。而触发器则是一...

    Informatica调用存储过程图文流程

    Informatica调用存储过程图文流程 Informatica 是一款功能强大的数据集成工具,能够帮助用户快速、可靠地集成各种数据源。调用存储过程是 Informatica 中的一种常用功能,下面将详细介绍 Informatica 调用存储过程...

    存储过程文档--mysql

    存储过程文档--MySQL 存储过程是 MySQL 中的一个强大功能,它允许用户预先将常用的或复杂的工作写入 SQL 语句,并将其存储起来,以便在以后的数据库操作中可以快速调用和执行。存储过程可以提高数据库的执行速度,...

Global site tag (gtag.js) - Google Analytics