推荐文章: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)的更多相关文章

  1. 使用mybatis调用存储过程(注解形式和配置文件形式)

    最近在看资料中涉及到mybatis,突然想到mysql中的视图.存储过程.函数.现将在使用mybatis调用mysql的存储过程使用总结下: 使用的环境:mybatis3.4.6,mysql 5.6, ...

  2. Mybatis调用存储过程报错

    Mybatis调用存储过程 贴码 123456 Error querying database. Cause: java.sql.SQLException: User does not have ac ...

  3. Spring学习总结(五)——Spring整合MyBatis(Maven+MySQL)二

    接着上一篇博客<Spring整合MyBatis(Maven+MySQL)一>继续. Spring的开放性和扩张性在J2EE应用领域得到了充分的证明,与其他优秀框架无缝的集成是Spring最 ...

  4. MyBatis基础:MyBatis调用存储过程(6)

    1. 存储过程准备 CREATE PROCEDURE sp_task ( IN userId INT ) BEGIN SELECT * FROM task WHERE user_id = userId ...

  5. springboot+mybatis+druid+sqlite/mysql/oracle

    搭建springboot+mybatis+druid+sqlite/mysql/oracle附带测试 1.版本 springboot2.1.6 jdk1.8 2.最简springboot环境 http ...

  6. mybatis&plus系列------Mysql的JSON字段的读取和转换

    mybatis&plus系列------Mysql的JSON字段的读取和转换 一. 背景 在平常的开发中,我们可能会有这样的需求: 业务数据在存储的时候,并不是以mysql中的varchar丶 ...

  7. 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 ...

  8. 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 ...

  9. mybatis mapper调用mysql存储过程

    mybatis版本:3.4.4 存储过程 1.mapper.xml文件中配置相关的sql语句. <select id="callTest" statementType=&qu ...

随机推荐

  1. java web从零单排第十七期《struts2》数据标签库(1)

    1.s:action标签: 此标签的作用是在JSP页面中访问action类的数据,执行某些操作,并返回相应的数据.其属性及意义如下: 属性名 是否必需 默认值 类型 说明介绍 executeResul ...

  2. 任务管理器进程中多个chrome.exe的问题

    偶然发现任务管理器进程中有多个chrome.exe进程,非常奇怪自己仅仅打开了一次浏览器,为什么会有多个?! 上网一查才发现:原来使用Google浏览器Google Chrome每开一个新标签页面,都 ...

  3. SpringMVC中的异步提交表单

    1.前言 近期在做一个项目,前台框架用的是EasyUI+SpringMVC,因为对SpringMVC不太了解,所以刚開始接触的时候有点吃力,在此通过一个EasyUi中的DataGrid表格来总结一下. ...

  4. Mvc里删除Cooki

    /// <summary> /// 删除Cookie /// </summary> /// <param name="skuID">从购物车选择 ...

  5. asp.net 使用HttpModule记录全局错误

    以前使用Global.asax记录全局的错误日志觉得挺好用,但是如果一个解决方案下有N多个项目,每个下边都需要加一个并且代码都还是重复的,终于有一天无法再忍受这种模式,考虑到HttpModule,直接 ...

  6. php汉字截取

    /** * 截取HTML,并自动补全闭合 * @param $html * @param $length * @param $end */ function subHtml($html,$length ...

  7. 无法下载图片 App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file

    刚学线程通信,提示: 2016-01-27 11:11:02.246 20-9 gcd3 communicationOfThread[5193:298643] App Transport Securi ...

  8. 指针和const

    将指针参数声明为指向常量数据的指针有两条理由: 这样可以避免由于无意间修改数据而导致的编译错误.      使用const使得函数能够处理const和非const实参,否则将只能接收非const数据. ...

  9. Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上

    下载安装软件 下载 Opencv for Windows 最新版本,本文是 Opencv 2.4.8.双击后会出现解压提示,实际上就是“安装”了,路径填写为 D:/Program Files,然后确定 ...

  10. HTTP填坑

    HTTP知识填坑 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",& ...