程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mybatis調用mysql存儲過程返回結果集

mybatis調用mysql存儲過程返回結果集

編輯:MySQL綜合教程

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
listIis1 = reportDao.select4MapParam(queryMap, "currentSql"); ListlistIis2 =reportDao.select4MapParam(queryMap,"test123"); return JSONArray.fromObject(listIis2).toString(); }

注:有上面可知,mysql存儲過程中可以直接使用select語句返回結果集,而且mybatis可以直接使用list接收這個結果集(無需游標)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved