数据库的存储过程可以减少程序代码的重复性,使程序更加简洁易懂

最近在学习mysql存储过程中遇到了一些有趣的问题:

1、在写存储过程的时候,存储过程名后面一定要加上括号,就算没有参数也要加,不然就会报错

2、在调用存储过程时,没有参数的存储过程可以加括号也可以不加括号

3、由于mysql是不区分大小写的,这点跟SQL不一样。所以在给存储过程入参起名字的时候不要以列名的小写字母来取,不然就会出现原本是更改或操作一条记录的,结果则修改了整个表

1 create procedure update_name(IN name varchar(20), IN id INT)2 begin

3 updatestudent4 set sname=name where ID=id;5 end

这段代码本应该修改一条记录,结果会把整个表的记录都修改。由于不区分大小写,所以ID=id一直为真。

4、在mybatis程序中调用存储过程的主要代码:

无参的存储过程调用比较简单:

1

2

5

这里的id一定要与接口中一样。

有参数的存储过程调用有两种方法:

第一种:

xml中:

1

2

5

dao层接口中:

1 void updateNameById(@Param("id")int id,@Param("name")String psid);

参数名必须对应,不要会出现绑定失败的错误。

第二种:

XML中:

1

2

3

4

5

6

7

8

11

dao层接口中:

1 void updateNameById(MAP map);

这里的parameterMap的参数名不能为空,不然会出错

5、在调用返回结果集的存储过程时,应该有对应的ResultMap,该参数也不能为空,不然会出现莫名其妙的错误。服务器在启动时不会发现这个错误,但是在测试时会出现

程序中的Mapper之间莫名其妙的不对应,照成原因 是Result Map 没有值 在出现错去的Mapper中。

原文:http://www.cnblogs.com/John-Lyn/p/3835430.html

psid mysql_mysql存储过程相关推荐

  1. select 存储过程 mysql_MySQL存储过程无法使用SELECT(基本问题)

    我正在使用一个平台(perfectforms),它要求我在大多数查询中使用存储过程,并且从未使用过存储过程,我无法弄清楚我做错了什么.以下语句执行时没有错误: DELIMITER // DROP PR ...

  2. definer mysql_mysql存储过程的definer和invoker

    [存储过程的权限] ALTER ROUTINE 编辑或删除存储过程 CREATE ROUTINE 创建存储过程 EXECUTE运行存储过程 [存储过程的创建语法] delimiter //    -- ...

  3. definer mysql_mysql 存储过程中definer和invoker详解

    [存储过程的权限] ALTER ROUTINE 编辑或删除存储过程 CREATE ROUTINE 创建存储过程 EXECUTE运行存储过程 [存储过程的创建语法] delimiter //    -- ...

  4. psid mysql_MySQL数据双向同步解决方案(推荐)

    MySQL数据双向同步解决方案(推荐) 1. mysql数据同步实现原理 即读写操作在两台服务器上进行,每台服务器即主也是从.当其中的任何一台服务器收到操作请求时,其进行相应的数据变化,并把变化的数据 ...

  5. sqlserver的存储过程mysql_mysql,sqlserver存储过程的创建及执行

    mysql,sqlserver存储过程的创建及执行 sqlserver: 创建不带参数的存储过程: CREATE PROCEDURE 'ProName' AS SELECT * FROM [dbo]. ...

  6. 实验6 存储过程mysql_MySQL数据库实验:任务六 数据库存储过程设计

    任务六 数据库存储过程设计 文章目录 任务六 数据库存储过程设计 [实训目的与要求] [实训原理] [实训步骤] 一.定义.调用存储过程 1.创建不带参数的存储过程 2.创建带输入参数的存储过程 3. ...

  7. hql调用mysql存储过程_hibernate调用mysql存储过程

    在mysql中创建两个存储过程,如下: 1.根据id查找某条数据: 1 CREATE PROCEDURE `findEmpById`(IN id INTEGER(11))2 begin3      s ...

  8. mysql 分号 存储过程_MySql 存储过程

    自动增长列.字段值唯一性约束 create table aa( id int auto_increment primary key, sname varchar(32) unique ); inser ...

  9. 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码

    mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段. mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-d ...

最新文章

  1. 零基础入门学习Python(2)
  2. mongodb update
  3. 正儿八经的详细讲java内部类
  4. github怎么删除已经发布的Releases
  5. 基本的二分查找、寻找第一个和最后一个数的二分查找
  6. 使用Java8的进来,这几个方法不香吗?
  7. 比特币可视化工具_这个比特币交易“可视化”网站,用一辆公交车带你“上车”...
  8. python交互式帮助的进入、使用和退出_python退出交互式???
  9. What is yield
  10. 字体编辑用中日韩汉字Unicode编码表
  11. 计算机原理与接口技术论文,微机原理与接口技术综述论文
  12. h桥程序控制c语言,H桥电路原理及直流电机驱动编程
  13. hdu 5025 Saving Tang Monk 状态压缩dp+广搜
  14. 参加IBM武汉分公司10周年庆
  15. 什么是互质数(或互素数) ?
  16. 转载:domain adaption
  17. XMU 1617 刘备闯三国之汉中之战 【BFS+染色】
  18. python中pop什么意思
  19. 2022-2028全球仿生面罩行业调研及趋势分析报告
  20. MySQL优化之——查询

热门文章

  1. java类型转换的例子
  2. linux--多目录下的MakeFile文件(嵌套Makefile)编写
  3. python0x452_python at 0x
  4. AUTOCAD——工作空间设置
  5. 移动通讯中的2G和2.5G以及3G概念
  6. 微软OpenPAI平台搭建指南
  7. 设备配网专题《原理分析,设备配网技术之AP配网》
  8. 『Excel』常用五大类函数汇总
  9. 新浪sina.cn邮箱注册python版
  10. 简洁高斯朴素贝叶斯分类原理及python实现