Mybatis使用存储过程(MySql)
推荐文章:http://www.iteye.com/topic/1132302
http://yhjhappy234.blog.163.com/blog/static/316328322012455714892/
http://www.iteye.com/problems/85525
http://www.blogjava.net/zljpp/archive/2012/04/15/374383.html
这里写的是后台数据库使用Mysql,
存储过程定义:
PROCEDURE deyestest.procedure1(OUT json VARCHAR(2000))
BEGIN DECLARE v_id INT;
DECLARE v_userName VARCHAR(155);
DECLARE v_mobileNum VARCHAR(55);
DECLARE v_tmp VARCHAR(1000);
DECLARE v_info VARCHAR(2000);
DECLARE v_info2 VARCHAR(2000);
DECLARE v_int INT; DECLARE done INT DEFAULT 0; DECLARE myCursor CURSOR FOR
SELECT userId
, userName
, mobileNum
FROM
user_info
ORDER BY
userId
LIMIT
2, 10;
DECLARE CONTINUE HANDLER FOR SQLSTATE '' SET done = 1; OPEN myCursor;
SET v_info = concat('[');
FETCH myCursor INTO v_id, v_userName, v_mobileNum;
REPEAT SET v_tmp = concat('{', v_id, ',', v_userName, ',', v_mobileNum, '}', ',');
SET v_info = concat(v_info, v_tmp);
FETCH myCursor INTO v_id, v_userName, v_mobileNum;
UNTIL done
END REPEAT;
SET NAMES 'utf8';
SET v_int = char_length(v_info); SET v_info = left(v_info COLLATE utf8_bin, v_int - 1); SET v_info2 = concat(v_info, ']');
CLOSE myCursor;
SELECT v_info2
INTO
json;
END
java中Mapper配置:
<select id="getByProcedure2" statementType="CALLABLE">
{
call procedure1(
#{json,jdbcType=VARCHAR,javaType=java.lang.String,mode=OUT}
)
}
</select>
javaMapper代码:
public interface PersonMapper {
public void getByProcedure2(Map<String,Object> map);
}
java调用测试
public static void main(){
HashMap<String, Object> hashMap = new HashMap<String, Object>();
wuShuaiMapper.getByProcedure2(hashMap);
System.out.println(hashMap.get("json"));
}
如果使用Map作为进行java与数据库存储过程的数据输入与输出的参数,只需要配置select标签中“statementType="CALLABLE"”,然后在存储过程中的输出参数使用如下方式:SELECT v_info2 INTO json,其中json是存储过程中的输出参数。
Mybatis使用存储过程(MySql)的更多相关文章
- 使用mybatis调用存储过程(注解形式和配置文件形式)
最近在看资料中涉及到mybatis,突然想到mysql中的视图.存储过程.函数.现将在使用mybatis调用mysql的存储过程使用总结下: 使用的环境:mybatis3.4.6,mysql 5.6, ...
- Mybatis调用存储过程报错
Mybatis调用存储过程 贴码 123456 Error querying database. Cause: java.sql.SQLException: User does not have ac ...
- Spring学习总结(五)——Spring整合MyBatis(Maven+MySQL)二
接着上一篇博客<Spring整合MyBatis(Maven+MySQL)一>继续. Spring的开放性和扩张性在J2EE应用领域得到了充分的证明,与其他优秀框架无缝的集成是Spring最 ...
- MyBatis基础:MyBatis调用存储过程(6)
1. 存储过程准备 CREATE PROCEDURE sp_task ( IN userId INT ) BEGIN SELECT * FROM task WHERE user_id = userId ...
- springboot+mybatis+druid+sqlite/mysql/oracle
搭建springboot+mybatis+druid+sqlite/mysql/oracle附带测试 1.版本 springboot2.1.6 jdk1.8 2.最简springboot环境 http ...
- mybatis&plus系列------Mysql的JSON字段的读取和转换
mybatis&plus系列------Mysql的JSON字段的读取和转换 一. 背景 在平常的开发中,我们可能会有这样的需求: 业务数据在存储的时候,并不是以mysql中的varchar丶 ...
- mybatis/callablestatement调用存储过程mysql connector产生不必要的元数据查询
INFO | jvm 1 | 2016/08/25 15:17:01 | 16-08-25 15:17:01 DEBUG pool-1-thread-371dao.ITaskDao.callProce ...
- mysql jdbc性能优化之mybatis/callablestatement调用存储过程mysql jdbc产生不必要的元数据查询(已解决,cpu负载减少20%)
INFO | jvm 1 | 2016/08/25 15:17:01 | 16-08-25 15:17:01 DEBUG pool-1-thread-371dao.ITaskDao.callProce ...
- mybatis mapper调用mysql存储过程
mybatis版本:3.4.4 存储过程 1.mapper.xml文件中配置相关的sql语句. <select id="callTest" statementType=&qu ...
随机推荐
- SVN—怎样安装SVNserver端软件
一.怎样安装1.4.5版本号的SVNserver端软件: a.下载1.4.5版本号的SVNserver端软件.下载地址:http://download.csdn.net/download ...
- 【Andord真】SlideMenu+ViewPagerIndictor双滑动边栏+滑动导航条
采取SlideMenu达到的效果侧边栏: 间 setContentView是设置主背景的布局 setBehindContentView是设置左边菜单的布局 setSecondaryMenu是设置右边的 ...
- java中文乱码解决之道(一)—–认识字符集
原文出处:http://cmsblogs.com/?p=1395 沉寂了许久(大概有三个多月了吧),LZ“按捺不住”开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要 ...
- 【转】sun.misc.BASE64Encoder找不到jar包的解决方法
只需要在project build path中先移除JRE System Library,再添加库JRE System Library,重新编译后就一切正常了.(太神奇了,转自http://blog. ...
- UIPasteboard 粘贴板
UIPasteboard *pasteboard = pasteboard.string = self.label.text;
- poj1936--暴力解法
求s1是否是s2的子串. 分析: 例如sequence 和 subsequence . 从头开始比较,s1[0]与s2[0]相同,那么它们下标都可+1,接着比较s1[1]和s2[1],不相同:这时应该 ...
- MYSQL区分大小写
MYSQL区分大小写 1.linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写: 2.用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower ...
- js闭包陷阱问题
JavaScript是一种非常强大的函数式编程语言,可以动态创建函数对象. 由于JavaScript还支持闭包(Closure),因此,函数可以引用其作用域外的变量,非常强大. 来看看在JavaScr ...
- struts2笔记01-环境搭建
1.官网下载struts2 struts-2.3.28-all.zip,这个包可谓应有尽有,以后全靠它了! 2.jar包怎么选? (1)struts-2.3.28-all\struts-2 ...
- Delphi 函数指针(三大好处:灵活,委托的本质,回调机制),还可把函数指针当参数传入
首先学习: 指向非对象(一般的)函数/过程的函数指针 Pascal 中的过程类型与C语言中的函数指针相似,为了统一说法,以下称函数指针.函数指针的声明只需要参数列表:如果是函数,再加个返回值.例如声明 ...