码迷,mamicode.com
首页 > 数据库 > 详细

mybatis调用mysql存储过程返回结果集

时间:2015-07-09 19:57:26      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:mybatis   mysql   存储过程   结果集   游标   

存储过程中经常需要返回结果集。 Mysql 中直接用 select 即可返回结果集。而 oracle 则需要使用游标来返回结集。这一点 Mysql 相对比较方便,如下代码即可实现输出结果集:

存储过程定义:

DELIMITER $$ 
DROP procedure IF EXISTS pro_sql_data1 $$  
CREATE procedure pro_sql_data1(in sear_name  varchar(2000))  
BEGIN   
	if sear_name is not null and sear_name!='' then
		select id,name,date_format(create_time,'%Y-%m-%d') as repDate from ad_place where 
		name like concat('%',sear_name,'%');
	ELSE
		select id,name,date_format(create_time,'%Y-%m-%d') as repDate from ad_place;
	end if;
	
END$$
DELIMITER; 
执行结果:

技术分享

在mybatis中调用存储过程,然后获取该结果集:

1、xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifeng.iis.bean.iis.Report" >
	<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"/>
       <result column="repDate" property="repDate" javaType="java.lang.String" jdbcType="VARCHAR"/>
       <result column="summ" property="summ" javaType="java.lang.Long" jdbcType="BIGINT"/>
    </resultMap>
     
	<select id="test123" parameterType="java.util.Map"  resultMap="resultMap" statementType="CALLABLE" >  
      {call pro_sql_data(
	      #{obj,jdbcType=VARCHAR,mode=IN}
	   )
      }
    </select>  
</mapper>
java代码

public String query(String param) throws Exception {
		logger.info(param);
		Map queryMap = new HashMap();
		queryMap.put("obj", param);
		//List<Map> listIis1 = reportDao.select4MapParam(queryMap, "currentSql");
		
		List<Map> listIis2 =reportDao.select4MapParam(queryMap,"test123");
		
		return JSONArray.fromObject(listIis2).toString();
	}


注:有上面可知,mysql存储过程中可以直接使用select语句返回结果集,而且mybatis可以直接使用list接收这个结果集(无需游标)。


参考文章:http://yhjhappy234.blog.163.com/blog/static/316328322012455714892/



版权声明:本文为博主原创文章,未经博主允许不得转载。

mybatis调用mysql存储过程返回结果集

标签:mybatis   mysql   存储过程   结果集   游标   

原文地址:http://blog.csdn.net/liuxiao723846/article/details/46819157

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!