本文转载自:http://blog.csdn.net/ge_zhiqiang/article/details/38065629
一、首先定义存储过程,数据库环境mysql
CREATE PROCEDURE queryTotalNum(OUT totalNum INT , IN tableName varchar(40), IN conditions varchar(300)) begin declare stmt varchar(2000); declare num int; if LENGTH(conditions)>1 then begin set @sqlstr=concat('SELECT COUNT(*) INTO @num from ',tableName,' where ',conditions); end; else begin set @sqlstr=concat('SELECT COUNT(*) INTO @num from ',tableName); end; end if; prepare stmt from @sqlstr; execute stmt; deallocate prepare stmt; set totalNum = @num; select * from hdx_order_info LIMIT 0, 10 ; select * from hdx_proxy_distributor LIMIT 0, 10 ; end;
二、配置mybatis文件
<!--Map作为存储过程输入输出参数 --> <select id="getNamesAndItems" statementType="CALLABLE" parameterType="Map" resultMap="HdxOrderInfoMap,TestMap"> {call queryTotalNum(#{totalNum,jdbcType=INTEGER,mode=OUT},#{tableName,jdbcType=INTEGER,mode=IN},#{conditions,jdbcType=INTEGER,mode=IN})} </select>
三、DAO类
public interface IHdxOrderInfoDao { public List<List<?>> getNamesAndItems(Map<String,Object> map); }
四、services接口
public interface IHdxOrderInfoService { public List<List<?>> getNamesAndItems(Map<String,Object> map); }
五、services实现
public class HdxOrderInfoServiceImpl implements IHdxOrderInfoService{ private IHdxOrderInfoDao hdxOrderInfoDao = null; public IHdxOrderInfoDao getHdxOrderInfoDao() { return hdxOrderInfoDao; } public void setHdxOrderInfoDao(IHdxOrderInfoDao hdxOrderInfoDao) { this.hdxOrderInfoDao = hdxOrderInfoDao; } public List<List<?>> getNamesAndItems(Map<String, Object> map) { List<List<?>> list = this.hdxOrderInfoDao.getNamesAndItems(map); //totalNum是存储过程中的输出参数 System.out.println(map.get("totalNum")); //List<HdxOrderInfo> list0 = (List<HdxOrderInfo>)list.get(0); //List<HdxProxyDistributor> list1 = (List<HdxProxyDistributor>)list.get(1); return list } }
相关推荐
这是mybatis调用存储过程的代码
怎么使用MyBatis调用存储过程,步骤详细清楚,一看就会配置
能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来...只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载
完整的mybatis调用存储过程,解压解压后附加就可使用,注释详细
mybatis调用orclae存储过程
MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...
在已有的spring+mybatis 基本操作oracle数据库的基础上,增加了3个调用存储过程的例子:无返回值、返回结果集、返回多个结果,希望对大家能有所帮助
spring mvc + mybatis 调用mysql 存储过程
Java调用存储过程--传入集合参数 具体的方法描述分析
主要介绍了mybatis调用存储过程的实例,非常不错,具有参考借鉴价值,需要的朋友可以参考下
mybatis调用mysql中的存储过程方法详解
JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip
title: 10.3 MyBatis调用存储过程 10.3.3根据id查询数据返回对象10.3 MyBatis调用存储过程 10.3.3根据id查询数据返回对
使用maven+springMVC+mybatis编写的项目例子,如果有需要的可以下载,里面还用到了mybatis调用储存过程。
主要介绍了Mybatis调用Oracle存储过程的方法介绍,需要的朋友可以参考下
如上所示,参数是一个int数组,Mybatis提供了对调用存储过程的支持,那么PostgreSQL独有的数组类型作为存储过程的参数又将如何处理呢?其实很简单,mybatis提供了typeHandlers可以创建一个数组类型的类型处理器,...
怎么利用MyBatis传List类型参数到数据库存储过程中实现批量插入数据?接下来通过本文给大家介绍Mybatis传list参数调用oracle存储过程,需要的朋友可以参考下
springboot继承mybatis后,通过mybatis调用oracle数据库中创建的存储过程,并获取通过游标返回的数据。