Mysql的存储过程,Mybatis对存储过程的调用
来源:互联网 发布:软件政府采购实施办法 编辑:程序博客网 时间:2024/05/14 06:17
mysql存储过程
1.存储过程简介
我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。
2.mysql存储过程的创建
格式:CREATE PROCEDURE 过程名 ([过程参数[,...]])[特性 ...] 过程体
Simple1:
CREATE PROCEDURE pro(in s INT) SELECT name FROM info WHERE id=s
存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输入参数s,类型是int型,如果有多个参数用”,”分割开。
直接在sql中调用:
CALL pro(1)
输出结果:
Simple2:
CREATE PROCEDURE pro2(in s INT) SELECT name,id FROM info WHERE uid=s
同理,输出结果:
存储过程的创建语句还有很多,这里不一一列举。
Simple3:
DROP PROCEDURE IF EXISTS icekredit_support.role_update;CREATE DEFINER =`xuhua`@`%` PROCEDURE `role_update`( IN user_id_int INT, IN role_id_int INT, IN role_name_str VARCHAR(20), IN department_id_str VARCHAR(20), IN remark_str VARCHAR(100)) BEGIN DECLARE success VARCHAR(20); IF (SELECT create_person FROM role WHERE role_id = role_id_int) = user_id_int THEN UPDATE role SET role_name = role_name_str, department_id = department_id_str, remark = remark_str; SET success = 'update_success'; ELSE SET success = 'role_error'; END IF; SELECT success; END;
3.mybatis对存储过程的调用
对于simple1这样简单的输入输出,调用如下:
<select id="getName" statementType="CALLABLE" parameterType="java.lang.Integer" resultType="java.lang.Integer"> <![CDATA[ {call pro ( #{id,mode=IN,jdbcType=INTEGER})} ]]> </select>
对于simple2这样有很多输出项的,需要构造一个resultMap,这里我是用一个hashmap来存返回的数据
<resultMap type="java.util.HashMap" id="resultMap"> <result column="id" property="id" javaType="java.lang.Integer" jdbcType="INTEGER"/> <result column="name" property="name" javaType="java.lang.String" jdbcType="VARCHAR"/> </resultMap>
<select id="getName" statementType="CALLABLE" parameterType="java.lang.Integer" resultMap="resultMap"> <![CDATA[ {call pro2 ( #{id,mode=IN,jdbcType=INTEGER})} ]]> </select>
0 0
- Mysql的存储过程,Mybatis对存储过程的调用
- mybatis对mysql存储过程的处理
- mybatis调用mysql存储过程的例子
- 在mybatis调用mysql的存储过程
- mybatis调用mysql存储过程的例子
- mybatis调用mysql存储过程的例子
- Python对MySQL存储过程的调用
- Mybatis调用mysql存储过程
- Mybatis调用mysql存储过程
- mybatis调用MySQL存储过程
- Mybatis调用MySQL存储过程
- Mybatis调用MySQL存储过程
- mysql的存储过程调用
- myBatis调用带返回值的存储过程(mysql)
- Mysql的客户端工具Navigate,对存储过程的调用
- MyBatis 中调用存储过程的方式
- mybatis中存储过程的调用
- Mybatis 调用数据库的存储过程
- Hibernate JdbcTemplate的queryForInt的些许问题
- mmap原理及其在ART中的应用(1)
- Web 通信 之 长连接、长轮询(long polling)
- 关于使用hibernate时的sql异常
- DOM(一)一些属性方法介绍以及兼容性问题
- Mysql的存储过程,Mybatis对存储过程的调用
- Ajax访问/跨域访问WebService服务
- 05 OC之 集合 Set的使用
- sublime text3 个人配置
- mongoVUE 连接MongoDB3.2不能正常显示collection的问题
- HTTP状态码(HTTP Status Code)
- iframe无ID的处理
- 安卓学习笔记---联动:一个使用ExpandableListView(二级树)实现的联动功能
- 数学段子