mybatis 存储过程与游标的使用】的更多相关文章

MyBatis还能对存储过程进行完全支持,这节开始学习存储过程.在讲解之前,我们需要对存储过程有一个基本的认识,首先存储过程是数据库的一个概念,它是数据库预先编译好,放在数据库内存中的一个程序片段,所以具备性能高,可重复使用的特性.它定义了3种类型的参数:输入参数.输出参数.输入输出参数. •输入参数,是外界给的存储过程参数,在Java互联网中,也就是互联网系统给它的参数. •输出参数,是存储过程经过计算返回给程序的结果参数. •输入输出参数,是一开始作为参数传递给存储过程,而存储过程修改后将其…
(转)oracle 存储过程 带游标作为OUT参数输出 存储过程返回OUT参数的游标 例子. 包中带过程 要自己定义一个type [cur_name] is ref cursor游标,返回的时候就直接 procedure AAA(变量名 out [cur_name])如此申明OUT变量 存储过程 用系统默认的 sys_refcursor 游标类型 定义变量就OK了 --===================================================== Sql代码 : --…
原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕迹. 1 BEGIN 2 DECLARE Done INT DEFAULT 0; 3 4 DECLARE CurrentLingQi INT; 5 6 DECLARE ShizuName VARCHAR(30); 7 /* 声明游标 */ 8 DECLARE rs CURSOR FOR SELECT…
自己写的存储过程与游标结合使用的实例,与大家分享,也供自己查阅,仅供参考: --使用游标循环处理,删除重复的记录 declare @UserID int ) ) declare @UnitFlag int ) ) declare @Start int declare @End int ) declare @IsSubscribe bit declare curEmailTotalLib cursor for (select UserID,UserName,RealName,UnitFlag,Em…
MySQL存储过程之游标实战 ​ 博主日前在解决一个项目需求时,没有什么好的方法,于是就来学习存储过程了,之前也是接触过,奈何年少贪玩,竟是全部又还给了大学老师-苦不堪言呐-. ​ 先说一下业务需求吧,即要求查询出一套包含父子类别的数据,其结构是父类别有N条记录,并且要保证可以分页查询,与父类别对应的子类别要有N1条记录.该问题在之前的之前在度娘上面问过,然而无果.最近领导又提出了类似的需求,嗯.只能想办法了. 博主首先想到的就是left join,但是使用表连接的结果则是子类别的所以数据与父类…
注:本文来源于 <  Java调用oracle存储过程通过游标返回临时表数据   > Java调用oracle存储过程通过游标返回临时表数据 项目开发过程中,不可避免的会用到存储过程返回结果集.特别是选择Oracle做为数据库时,就更麻烦了,因为Oracle存储过程和SQLServer的有点不太一样,直接返回不了结果集,那么怎么才能在使用Oracle的情况下返回结果集,程序代码中怎么获取到那,请看下面几篇: 1.存储过程返回结果集 2.Java中执行存储过程以及多结果集处理 3.返回临时表中数…
1.存储过程 存储过程是什么,简单来讲,就像Java中的方法(函数),不过它是SQL世界中的方法. 大部分时候,我们所使用都是单条SQL,用来针对一个或多表连接.但是也有情况,是据判断先对表A执行操作,变动后再结合表B进行操作.即SQL的执行可能需要考虑包含业务规则在内的智能处理.封装操作的好处就不过多说明,无非是简化,复用,降低耦合等,同时,它还具有更高的性能. 考虑这种业务情况,现在你需要获得订单总额,但同时需要增加营业税,且只针对某些顾客,那么你需要: 获得基本的订单总额 将营业税有条件地…
sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态游标:静态游标的完整结果集在游标打开时建立在tempdb中.静态游标总是按照游标打开时的原样显示结果集. 静态游标在滚动期间很少或根本监测不到变化,虽然在tempdb中存储了整个游标,但消耗的资源很少.尽管动态游标使用tempdb的程度最低,在滚动期间它能够监测到所有变化,单消耗的资源也更多. 键集…
MariaDB.MySQL存储过程.游标基础应用举例说明 by:授客 QQ:1033553122 测试环境: MariaDB-10.0.19-centos7-x86_64 实践操作: # 创建测试数据库 DROP DATABASE IF EXISTS testdb1; CREATE DATABASE testdb1; # 创建测试表-余额表 DROP TABLE IF EXISTS account; CREATE TABLE IF NOT EXISTS account (user_id BIGI…
oracle存储过程和游标的使用 (2011-04-19 14:52:47) 转载▼ 游标: 用来查询数据库,获取记录集合(结果集)的指针,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情况,我们所说的游标都是指显式游标.要在程序中使用游标,必须首先声明游标分类: 静态游标:分为显式游标和隐式游标. REF游标:是一种引用类型,类似于指针. 显式游标: CURSOR 游标名 ( 参数 ) [返回值类型] IS  Select 语句 生命周期: 在大多数时候我们在设计程序的时候都遵循下…
本段代码主要为了记录存储过程以及游标的使用,防止以后自己忘记 知识点:1.存储过程书写 2.游标书写 3.游标循环更新记录 create proc saletargetas declare @oweridname varchar(20)declare @hmp_fiscalyear intdeclare @hmp_businessunitidname varchar(20)declare @hmp_nationterritoryidname varchar(20)declare @hmp_cur…
存储过程示例: create or replace procedure Fsp_Plan_CheckPrj(v_grantno varchar2, v_deptcode number, v_cursor out sys_refcursor) is ……………… ---返回统计结果 open v_Cursor for select s.plan_code, s.plan_dept, s.plan_amount, s.exec_amount, p.cname as plan_name, d.cnam…
在ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 3.2的环境进行操作的. 第一步配置Mapper的xml内容 <mapper namespace="com.rrtong.rrt.auto.dao.SelfStatisticDataDao"> <resultMap id="SelfStatisticData" type="SelfStatisticData"> <…
找了好久,网上也没示例,全是java的,没办法,后来看到一个网上别人写的例子. http://www.myfirm.cn/blog/article/Control/13.html 上面照套还是出错,我X,没找到类的属性,那么灵机一动,应该是个结果集,就List了,给类加个属性 搞定. public class Product { public int ProductId { get; set; } public string ProductName { get; set; } public Li…
<resultMap id="ticketInfosResultMap" type="Map"> <!--result要是默认用列名的话完全不必要配,省老事了 <result property="ID_" column="ID_"/> <result property="TICKET_NUMBER_" column="TICKET_NUMBER_"/&…
MySQL5 中添加了存储过程的支持. 大多数SQL语句都是针对一个或多个表的单条语句.并非所有的操作都怎么简单.经常会有一个完整的操作需要多条才能完成  存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合.可将其视为批文件.虽然他们的作用不仅限于批处理.  为什么要使用存储过程:优点 1 通过吧处理封装在容易使用的单元中,简化复杂的操作 2 由于不要求反复建立一系列处理步骤,这保证了数据的完整性.如果开发人员和应用程序都使用了同一存储过程,则所使用的代码是相同的.还有就是…
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行. 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数.输出参数.返回单个或多个结果集以及返回值. 由于存储过程在创建时即在数据库服务器上进…
数据库存储过程 drop PROCEDURE generate_serial_number; CREATE PROCEDURE generate_serial_number( ), IN param_org_id bigint, OUT result bigint) begin START TRANSACTION; select number into result from sys_serial_number where table_key=param_key and org_id = par…
一.带游标的存储过程 游标作为参数有两种类型: 1.声明系统游标类型 SYS_REFCURSOR 1)游标作为存储过程的参数: --带游标的存储过程 CREATE OR REPLACE PROCEDURE PRO_EMP_IN(EMP_CUR SYS_REFCURSOR) AS V_NAME EMP.ENAME%TYPE; V_SAL EMP.SAL%TYPE; BEGIN LOOP FETCH EMP_CUR INTO V_NAME, V_SAL; DBMS_OUTPUT.PUT_LINE('…
自己解决问题了 问题总结: 1.index by表不能存储在数据库中的type中,故选择嵌套表. 2.ibatis不支持oracle的复合数据类型的返回.(个人理解) 3.替代方案:用返回oracle游标来代替复合数据类型.ibatis能接受oracle游标类型. 注意此处是ibatis2.3 部分代码: 1.java 1 private Map<String,Object> userStateResult(Users users)throws Exception{ 2 Map<Stri…
http://blog.sina.com.cn/s/blog_6f3ca78f01010pmj.html iBatic调用与JAVA调用很类似,只是JAVA把参数的注册放到了类里面,而iBatis把参数的注册放到了XML配置文件里,下面两个例子,第一个是返回普通数据,第二个是返回游标. 1:返回普通数据 Map map = new HashMap(); map.put("username", "JACK"); sqlMapClient.queryForObject(…
内含游标的存储过程实例 第一种写法 GO BEGIN IF (object_id('PT_FAULT_REPORT', 'P') is not null) drop proc PT_FAULT_REPORT; END GO CREATE PROCEDURE PT_FAULT_REPORT (@index int, @stop_time DATETIME, @start_time DATETIME) AS DECLARE @departmentindex int, @departmentname…
/*带输入输出参数存储过程*/ ALTER PROCEDURE pro_test2 @userID INT, @maxUserID INT OUTPUT, @countUser INT OUTPUT AS BEGIN SELECT * FROM dbo.SY_ADMIN WHERE UserID=@userID --10075 SELECT @maxUserID=10089 SET @countUser=20000 END; GO /*测试*/ DECLARE @maxUserID INT,@c…
创建表: create table tb1( id int , name ) ) ------------------------------------------------- 创建返回游标的存储过程: create proc tb1_proc ( @cur cursor varying output ) as begin set @cur=cursor for select * from tb1 end open @cur ---------------------------------…
--定时任务 declare job20 number; begin sys.dbms_job.submit(job20,'test1;',sysdate,'sysdate+1'); end; --存储过程 create or replace procedure test3 as xh_zgid varchar(); xh_zggh varchar(); xh_xm varchar(); xh_grdh varchar(); xh_count int; xh_dxxh int; xh_zfqnr…
MySQL5 中添加了存储过程的支持.     大多数SQL语句都是针对一个或多个表的单条语句.并非所有的操作都怎么简单.经常会有一个完整的操作需要多条才能完成     存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合.可将其视为批文件.虽然他们的作用不仅限于批处理.     为什么要使用存储过程:优点         1 通过吧处理封装在容易使用的单元中,简化复杂的操作         2 由于不要求反复建立一系列处理步骤,这保证了数据的完整性.如果开发人员和应用程序都…
create procedure my_procedure() -- 创建存储过程 begin -- 开始存储过程 declare my_id varchar(32); -- 自定义变量1 declare my_name varchar(50); -- 自定义变量2 DECLARE done INT DEFAULT FALSE; -- 自定义控制游标循环变量,默认false DECLARE My_Cursor CURSOR FOR ( SELECT id, name FROM t_people…
-- 完整例子 CREATE PROCEDURE test BEGIN -- 定义参数    DECLARE _id INT; -- 定义游标    DECLARE no_more_products INT DEFAULT 0;    DECLARE RESULT_test CURSOR FORSELECT num1 from numtest; -- 如果NOT FOUND游标DECLARE  CONTINUE HANDLER FOR NOT FOUND  SET  no_more_produc…
一.MySQL游标的概念 游标介绍: MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解. 有数据缓冲的思想:游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果. 先有数据基础:游标是在先从数据表中检索出数据之后才能继续灵活操作的技术.   类似于指针:游标类似于指向数据结构堆栈中的指针,用来pop出所指向的数据,并且只能每次取一个. 游标优缺点: 游标的优点: 因为游标是针对行操作的,所以对从数据库中select查询得到的每一…
(注意事项: 在使用游标的时候,不能在游标声明之前,使用crud) 存储过程示例 CREATE DEFINER=`root`@`::` PROCEDURE `earnings_proceduce`()) label:BEGIN #收益记录的分配 # 基本参数的定义 # 总金额 DECLARE _total_money BIGINT DEFAULT ; # 发放配置占比 DECLARE _deduct BIGINT; # 待发放金额 DECLARE _stay_out BIGINT DEFAULT…