Hibernate调用mysql存储过程,返回多个参数的方法
来源:互联网 发布:如何禁止软件自动升级 编辑:程序博客网 时间:2024/05/16 02:14
1:创建存储过程的语句
DELIMITER $;DROP PROCEDURE IF EXISTS `xx`.`findUVCountByTime`$CREATE PROCEDURE `xx`.`findUVCountByTime` (in querySql varchar(255), out startUpNum int(11), out closeDownNum int(11), out detailNum int(11), out listNum int(11), out takePartNum int(11), out toastNum int(11), out shareGoodsNum int(11), out loginNum int(11), out tradeNum int(11))BEGIN declare startUpNumSql varchar(255) default ''; declare closeDownNumSql varchar(255) default ''; declare detailNumSql varchar(255) default ''; declare listNumSql varchar(255) default ''; declare takePartNumSql varchar(255) default ''; declare toastNumSql varchar(255) default ''; declare shareGoodsNumSql varchar(255) default ''; declare loginNumSql varchar(255) default ''; declare tradeNumSql varchar(255) default ''; set startUpNumSql=concat(querySql, ' and keyValue=0) as a '); set closeDownNumSql=concat(querySql, ' and keyValue=1) as a '); set detailNumSql=concat(querySql, ' and keyValue=2) as a '); set listNumSql=concat(querySql, ' and keyValue=3) as a '); set takePartNumSql=concat(querySql, ' and keyValue=4) as a '); set toastNumSql=concat(querySql, ' and keyValue=5) as a '); set shareGoodsNumSql=concat(querySql, ' and keyValue=6) as a '); set loginNumSql=concat(querySql, ' and keyValue=7) as a '); set tradeNumSql=concat(querySql, ' and keyValue=8) as a '); set @startUpNumTranc = concat('select count(*) into @startUpNumS from' , startUpNumSql); set @closeDownNumTranc = concat('select count(*) into @closeDownNumS from' , closeDownNumSql); set @detailNumTranc = concat('select count(*) into @detailNumS from ', detailNumSql); set @listNumTranc = concat('select count(*) into @listNumS from ', listNumSql); set @takePartNumTranc = concat('select count(*) into @takePartNumS from ', takePartNumSql); set @toastNumTranc = concat('select count(*) into @toastNumS from ', toastNumSql); set @shareGoodsNumTranc = concat('select count(*) into @shareGoodsNumS from ', shareGoodsNumSql); set @loginNumTranc = concat('select count(*) into @loginNumS from ', loginNumSql); set @tradeNumTranc = concat('select count(*) into @tradeNumS from ', tradeNumSql); PREPARE startUpNumTrancS FROM @startUpNumTranc; EXECUTE startUpNumTrancS; set startUpNum = @startUpNumS; PREPARE closeDownNumTrancS FROM @closeDownNumTranc; EXECUTE closeDownNumTrancS; set closeDownNum = @closeDownNumS; PREPARE detailNumTrancS FROM @detailNumTranc; EXECUTE detailNumTrancS; set detailNum = @detailNumS; PREPARE listNumTrancS FROM @listNumTranc; EXECUTE listNumTrancS; set listNum = @listNumS; PREPARE takePartNumTrancS FROM @takePartNumTranc; EXECUTE takePartNumTrancS; set takePartNum = @takePartNumS; PREPARE toastNumTrancS FROM @toastNumTranc; EXECUTE toastNumTrancS; set toastNum = @toastNumS; PREPARE shareGoodsNumTrancS FROM @shareGoodsNumTranc; EXECUTE shareGoodsNumTrancS; set shareGoodsNum = @shareGoodsNumS; PREPARE loginNumTrancS FROM @loginNumTranc; EXECUTE loginNumTrancS; set loginNum = @loginNumS; PREPARE tradeNumTrancS FROM @tradeNumTranc; EXECUTE tradeNumTrancS; set tradeNum = @tradeNumS; END$DELIMITER ;$
2:在Hibernate中调用存储过程并获得返回值
session = this.hibernateTemplate.getSessionFactory().openSession();CallableStatement cs = session.connection().prepareCall(" { call findUVCountByTime(?,?,?,?,?,?,?,?,?,?)}");cs.setString(1, queryString);cs.registerOutParameter("startUpNum", Types.INTEGER);cs.registerOutParameter("closeDownNum", Types.INTEGER);cs.registerOutParameter("detailNum", Types.INTEGER);cs.registerOutParameter("startUpNum", Types.INTEGER);cs.registerOutParameter("startUpNum", Types.INTEGER);cs.registerOutParameter("startUpNum", Types.INTEGER);cs.registerOutParameter("startUpNum", Types.INTEGER);cs.registerOutParameter("startUpNum", Types.INTEGER);cs.registerOutParameter("startUpNum", Types.INTEGER);cs.execute();uvCount.setStartUpNum(cs.getInt("startUpNum")); uvCount.setCloseDownNum(cs.getInt("closeDownNum")); uvCount.setDetailNum(cs.getInt("detailNum")); uvCount.setListNum(cs.getInt("listNum")); uvCount.setTakePartNum(cs.getInt("takePartNum")); uvCount.setToastNum(cs.getInt("toastNum")); uvCount.setShareGoodsNum(cs.getInt("shareGoodsNum")); uvCount.setLoginNum(cs.getInt("loginNum")); uvCount.setTradeNum(cs.getInt("tradeNum")); return uvCount;
- Hibernate调用mysql存储过程,返回多个参数的方法
- Hibernate调用带返回值的存储过程的方法
- PHP_PDO 调用mysql 带返回参数的存储过程
- Hibernate3调用带返回参数的mysql存储过程
- MySQL存储过程里字符串拼接返回参数的方法
- 调用有返回参数的存储过程
- php调用mysql存储过程返回多个结果集的处理
- mysql c++ 调用存储过程返回多个结果集,如果选择适合自己的?
- Hibernate调用存储过程示例(有参数,返回结果集)
- Delphi调用MSSQL存储过程返回的多个数据集的方法
- Delphi调用MSSQL存储过程返回的多个数据集的方法
- hibernate里使用jdbc方式调用oracle带游标返回参数的简单分页存储过程
- hibernate调用mysql的存储过程
- mybatis调用orcale存储过程-传入多个参数返回单个字符
- mybatis调用orcale存储过程-传入多个参数返回结果集
- ASP调用存储过程:返回多个记录集的存储过程
- ASP调用存储过程:返回多个记录集的存储过程
- hibernate 调用mysql存储过程
- 人生第一场regional
- [转载]基于效率考虑,对Windows多线程同步机制的选择,分析与实测
- 教你如何本地安装gem
- AS3-E4X(ECMAScript for XML)总结
- CPU卡发卡过程中应当注意的问题(转)
- Hibernate调用mysql存储过程,返回多个参数的方法
- asp.net文件上传
- AndroidManifest.xml文档详解
- 网卡禁用启用,usb监测,禁用启用
- 使用json-lib实现的JSON产生器(Java版本)
- 成员资格管理
- RCU 机制[转载]
- qemu-kvm 准备知识
- 【黑马.net程序员】C#简单的操作Xml文件