问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mybatis调用mssql的存储过程,返回结果集的那种,不是返回单个的数据

发布网友 发布时间:2022-04-08 01:51

我来回答

2个回答

懂视网 时间:2022-04-08 06:12

 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   存储过程   结果集   游标   

热心网友 时间:2022-04-08 03:20

<selectid="callTransNo"statementType="CALLABLE">
{ call proc_getAll() }
</select>

Mybatis 里面调用,跟调用普通的 sql select 语句一样!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中国和世界历史女性名人 盘点那些名垂千古的女人们 营养师多少钱一个月 红米手机充电怎么不显示快充画面 薯塔的做法(薯塔的做法是什么) 薯塔是如何做的薯塔的做法方法如何做薯塔怎样做 GND代表什么 皮肤干燥裂口子怎么办? 一到冬天小腿下面就自然出现口子 成的五笔dnnt是怎么拆的 成的五笔的打法是DNNT给我解释一下.. 陕西60岁以上免费的景点有哪些? 键盘背光什么颜色不刺眼 机械键盘记忆背光是什么意思 预埋件工程量怎么计算 预埋件450*450*16怎么计算它的重量 预埋铁件怎么算 如何计算轻钢预埋锚栓工程量,工程造价 单个预埋铁件重量计算 预算中,预埋铁件是怎么算的 HGT21629-1999(3)角钢三角托架/D15中的预埋件怎么算重量 土建工程中,预埋件的钢筋量怎么计算? 预埋铁件的理论重量是如何得出的?“锚筋重量=程度*理论重量”里程度指什么? 建筑幕墙预埋件20×20cm厚度15mm一块多重? 工程中预埋铁件如200*200*10的重量是多少? 烤鱼片有哪些执行标准 烤鱼片的营养价值有哪些 烤鱼片烤得是什么鱼? mybatis在mysql调用存储过程时为什么会出现以下错误? 烤鱼片有什么营养 烤鱼片是怎样成的 烤鱼片是什么鱼做的? 职工多少岁可以退休 现在职工退休年龄是多少岁? 应聘商场播音员应掌握那些技巧 郑州丹尼斯招聘播音员吗 商场的播音员是怎么聘进去的 怎么应聘商场或超市的播音员? 一个单位招聘播音员合同制,要求很简单,身高165以上,有普通话二甲证书,报名后笔试,面试,体检,签 超市急缺一名英语播音员,一时又找不到,怎么办啊? mybatis怎么调用过程获取返回列表以及输出值 请问广播电台播音员应聘要求是什么? 中文电台播音员招聘条件 我是刚应聘的服装商场播音员,早上大约只有一分钟就迎宾,这份播音稿该怎么写呢? 应聘播音员30字 我也想做电台播音员,要什么条件才可以呢?还有怎样的途径呢?谢谢 咸菜里的白沫子如何去除 在石家庄市里考的普通话证书丢了能不能补办呀!我急呀!谢谢你们了!!! 石家庄教师招聘考试报名时需要上传普通话证书原件吗? 本人石家庄的,(07年考的)普通话证(被同学弄)丢了(证件编号不详),请问谁知到怎么补办普通话证? 石家庄的普通话考试去哪报名?能网上报名吗? 河北省普通话证书在那个网站查询