• 回顾存储过程简单使用


    存储过程创建

    • 很长时间没有在项目中使用到存储过程,今天特意回顾一下存储过程的创建与调用。存储过程类似于Java中的函数,我们定义函数(存储过程)将内部逻辑(SQL)封装。在调用时,只需要指定方法名(存储过程名称),传入对应的参数即可。下面我们在mysql终端定义存储过程
    1 mysql> delimiter $$ //定义与mysql默认的结束符(;)不同的结束符,避免下面的sql遇到(;)结束存储过程的创建
    2 mysql> create procedure getPowerUnit(in puId varchar(50)) //这里的varchar需要指定长度
    3     -> begin
    4     -> select * from power_unit where pu_id = puId;
    5     -> end$$ //新定义的结束符,到此存储过程定义结束
    6 Query OK, 0 rows affected (0.12 sec)
    7 mysql> delimiter ; //切换为默认的结束符号
    

    存储过程调用

    • 上面我们定义了通过表主键pu_id查询记录的一个存储过程,在调用时需要使用指令call
     1 mysql> call getPowerUnit('pu20191213144059-0');
     2 +--------------------+----------+----------------+-------------+-------------------+-------------+-------------+---------------+---------------------+-------------+-------------+---------------+--------+
     3 | pu_id              | pu_name  | description    | admin_state | operational_state | pu_validity | pu_owner_id | pu_owner_name | create_time         | cancel_time | delete_time | particle_size | belong |
     4 +--------------------+----------+----------------+-------------+-------------------+-------------+-------------+---------------+---------------------+-------------+-------------+---------------+--------+
     5 | pu20191213144059-0 | 1000KG缸 | 布带/码装/织带    |           1 |                 1 |           1 |           1 | 负责人        | 2019-12-13 14:41:00 | NULL        | NULL        |             1 |   NULL |
     6 +--------------------+----------+----------------+-------------+-------------------+-------------+-------------+---------------+---------------------+-------------+-------------+---------------+--------+
     7 1 row in set (0.00 sec)
     8 
     9 Query OK, 0 rows affected, 1 warning (0.04 sec)
    

    mybatis调用存储过程

    • 这里省略mapper接口中定义的抽象方法“Power selectPowerUnitById(String puId)”
    1 <!-- 添加用户 -->
    2     <select id="selectPowerUnitById" parameterType="java.lang.String" statementType="CALLABLE">
    3         {call getPowerUnit(#{puId,mode=IN})}
    4     </select>
    

    定义完成,接下来与正常开发中的使用一致!
    详细教程

  • 相关阅读:
    POJ2425 A Chess Game[博弈论 SG函数]
    POJ1740A New Stone Game[组合游戏]
    Vijos P1196吃糖果游戏[组合游戏]
    CF724D. Dense Subsequence[贪心 字典序!]
    CF724B. Batch Sort[枚举]
    CF731C. Socks[DFS 贪心]
    CF733D Kostya the Sculptor[贪心 排序]
    CF733C Epidemic in Monstropolis[模拟 构造 贪心]
    洛谷P1991无线通讯网[kruskal | 二分答案 并查集]
    NOIP2015斗地主[DFS 贪心]
  • 原文地址:https://www.cnblogs.com/yiweiblog/p/12671843.html
Copyright © 2020-2023  润新知