当前位置:Gxlcms > 数据库问题 > mybatis调用mysql存储过程返回结果集

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

时间:2021-07-01 10:21:17 帮助过:26人阅读

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

存储过程定义:

  1. DELIMITER $$
  2. DROP procedure IF EXISTS pro_sql_data1 $$
  3. CREATE procedure pro_sql_data1(in sear_name varchar(2000))
  4. BEGIN
  5. if sear_name is not null and sear_name!='' then
  6. select id,name,date_format(create_time,'%Y-%m-%d') as repDate from ad_place where
  7. name like concat('%',sear_name,'%');
  8. ELSE
  9. select id,name,date_format(create_time,'%Y-%m-%d') as repDate from ad_place;
  10. end if;
  11. END$$
  12. DELIMITER;
执行结果:

技术分享

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

1、xml配置文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.ifeng.iis.bean.iis.Report" >
  4. <resultMap type="java.util.HashMap" id="resultMap">
  5. <result column="id" property="id" javaType="java.lang.Integer" jdbcType="INTEGER"/>
  6. <result column="name" property="name" javaType="java.lang.String" jdbcType="VARCHAR"/>
  7. <result column="repDate" property="repDate" javaType="java.lang.String" jdbcType="VARCHAR"/>
  8. <result column="summ" property="summ" javaType="java.lang.Long" jdbcType="BIGINT"/>
  9. </resultMap>
  10. <select id="test123" parameterType="java.util.Map" resultMap="resultMap" statementType="CALLABLE" >
  11. {call pro_sql_data(
  12. #{obj,jdbcType=VARCHAR,mode=IN}
  13. )
  14. }
  15. </select>
  16. </mapper>
java代码

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


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


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



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

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

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

人气教程排行