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 ...
随机推荐
- iOS音频播放(一):概述
(本文转自码农人生) 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改,我也因此对于iOS下的音频播放实现有了一定的研究.写这个 系列的博客目的一方面希望能够抛砖引玉 ...
- Repeater获取某一行TextBox值
TextBox tb = (TextBox)e.Item.FindControl("TextBoxID");
- js实现网页打印分页打印
web打印思路:html页面本身带有打印功能window.print() 但是在打印时又不能word模板的要求来打印不能满足打印需求.同时我们打印的数据有时候是动态变化的需要按模板来打印我的处理方式是 ...
- bootstrap注意事项(四)表格
1.基本实例 为任意 <table> 标签添加 .table 类可以为其赋予基本的样式 — 少量的内补(padding)和水平方向的分隔线.这种方式看起来很多余!?但是我们觉得,表格元素使 ...
- root cause:org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
今天在调试SSH与Ajax时,服务器端报出JSON异常:
- QF——UI之UIViewController
程序一经启动,AppDelegate的实例就会创建一个充满屏幕的window,它是App唯一的,一个App对应一个window.window是UIWindow类型的,继承于UIView,是种特殊的UI ...
- Demo 示例控制输入光标位置
<!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <meta name="aut ...
- python 杨辉三角 算法实现
def triangles(level): n = 1 L = [] while n <=level: if n <= 2: L.append(1) yield L elif n > ...
- mysql学习笔记--第1天
1.像网页上的账户.图片.文章都是存在数据库里面2.Oracle .DB2 .SQL server等等多钟数据库 PHP中选择使用mysql PHP+mysql黄金搭档 PHP和mysql都是开源的, ...
- hadoop笔记之Hive的数据存储(内部表)
Hive的数据存储(内部表) Hive的数据存储(内部表) 基于HDFS 可使用hadoop给我们提供的web管理工具查看数据.打开管理工具localhost:9000–>Utilities下的 ...