返回多数据集写法:
第一种

DROP PROCEDURE IF EXISTS `p_query_user` ;
DELIMITER //
CREATE PROCEDURE p_query_user( p_inout_user_id INT )
begin
declare c varchar(100) default '';
SELECT * FROM T_SD_USER WHERE USER_ID = p_inout_user_id ;
SET p_inout_user_id =2222;
end //
DELIMITER ;
set @uId = 3000 ;
CALL p_query_user(@uId );
SELECT @uId ;

第二种

mysql>delimiter //
mysql>drop procedure if exists proc;
mysql>create procedure proc()
begin
create temporary table tmp1 like t;
insert into tmp1 select * from t;
create temporary table tmp2 like t;
insert into tmp2 select * from t;
end;
//
mysql>delimiter ;
mysql>select * from tmp1;
mysql>select * from tmp2;

注:使用临时表在session级一直可用,再次调用存储过程需要先DROP临时表。

hibernate call

@Test
public void test0() {
try { String procedureSql = "CALL p_query_user( :userId)";
SQLQuery sqlQuery = t.getSession().createSQLQuery(procedureSql)
.addEntity(TSdUser.class);
Object userId = 3000;
sqlQuery.setParameter("userId", userId);
List<TSdUser> result = sqlQuery.list();
for (TSdUser tSdUser : result) {
System.out.println(tSdUser);
}
System.out.println(userId);
} catch (Exception e) {
e.printStackTrace();
}
}

结果如下:

Hibernate: CALL p_query_user( ?)
TSdUser [userSysMlb=100.0, userUseredMlb=633137.0, userDoDiscoverCount=0, userDoCommonsSayCount=0, createTime=2014-05-08 12:20:35.0, lastActivateSystemMsgTime=2014-07-17 12:10:00.0, lastActivateSusCommentMsgTime=2014-05-08 12:20:35.0, lastActivateNegativeMsgTime=2014-06-17 10:27:37.0, lastActivatePraiseMsgTime=2014-05-08 12:20:35.0, lastActiveTime=2014-08-11 18:45:52.0, priMsgTime=2014-08-09 14:30:27.0, lockTime=null, userMark=null, userSubMark=null, userRemark=null, userInfo=null, userLoginIp=127.0.0.1, userLogginPhoneCode=13724770797, userRegisterInfo=null, userRealName=null, userRegisterPhoneCode=13724770797, userRegistrationCity=null, userPhoneCity=湛江, userDeviceType=Android, userLoginQqId=1, userLoginWeiXinId=null, userLoginSinaBlogId=null, userWeiXinOpenId=111, cteateType=1, restaurantWeiXinOpenId=222, weiXinSubscribeTime=2014-05-17 13:29:28.0, weiXinSubscribeStatus=SUBSCRIBE, weiXinUnSubscribeTime=null, userId=3000, userName=MJorcen, userTotalMlb=1.1111111E7, userDoAttentionCount=0, userReAttentionCount=0, userDoPraiseCount=0, userRePraiseCount=11, userDoNegativeCount=0, userReNegativeCount=6, userDoShowDetailCount=38, userDoGetVoucherCount=5, userDoUsedVoucherCount=2, userPhone=13724770797, userGender=G, userGrade=0, userHeader=null]

或者:

    @Test
public void test1() {
try { String procedureSql = "CALL p_query_user(?)";
Connection connection = t.getSession().connection();
Object userId = 3000;
java.sql.CallableStatement cs = connection
.prepareCall(procedureSql);
cs.setInt(1, 3000); cs.registerOutParameter("p_inout_user_id", Types.INTEGER);
cs.execute();
int patams1 = cs.getInt(1);
ResultSet resultSet = cs.getResultSet();
while (resultSet.next()) {
System.out.println(resultSet.getInt("USER_ID"));
}
System.out.println(patams1);
} catch (Exception e) {
e.printStackTrace();
}
}

一个网上的例子;

public String callFirstProcedures(final long qyid, final int pdys) {
String procedureSql = "{call get_qyaqdcpdjb(?,?,?)}";
Object pj = jdbcTemplate.execute(procedureSql,
new CallableStatementCallback() {
public Object doInCallableStatement(CallableStatement cs)
throws SQLException, DataAccessException {
cs.setLong(1, qyid);
cs.setInt(2, pdys);
//你需要注册一个输出参数
cs.registerOutParameter(3, Types.VARCHAR);
cs.execute();
return cs.getString(3);
}
});
return HtmsUtils.formatObject(pj);
}

mysql procedure返回多数据集的更多相关文章

  1. jdbc 处理mysql procedure返回的多个结果集

    1:测试数据库表user mysql> desc user$$ +-------+-------------+------+-----+---------+----------------+ | ...

  2. MySQL 存储过程返回多个值

    MySQL  存储过程返回多个值   在本教程中,您将学习如何编写/开发返回多个值的存储过程. MySQL存储函数只返回一个值.要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程 ...

  3. OpenLayers添加点【php请求MySQL数据库返回GeoJSON数据】

    php请求MySQL数据库返回GeoJSON数据的实现方法请参见: http://www.cnblogs.com/marost/p/6234514.html OpenLayers[v3.19.1-di ...

  4. MYSQL procedure

    没怎么接触过mysql procedure,今天建个calendar表还磨磨唧唧的,记录一下: CREATE PROCEDURE `new_procedure` (start_date DATA,en ...

  5. mysql更新返回值问题(更新内容跟之前内容一样,返回0)

    mysql更新返回值问题 问: 有一界面要更新个人信息,有几十个text标签需要填写假设有一用户从用户列表点修改进入了修改页面,但又没有修改什么,马上点击保存这时,因为text标签非常多,不能够一一判 ...

  6. PHP 把返回的数据集转换成Tree树

    /** * 把返回的数据集转换成Tree * @access public * @param array $list 要转换的数据集 * @param string $pid parent标记字段 * ...

  7. Python查询Mysql时返回字典结构的代码

    Python查询Mysql时返回字典结构的代码 MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.D ...

  8. Spring Boot项目中MyBatis连接DB2和MySQL数据库返回结果中一些字符消失——debug笔记

    写这篇记录的原因是因为我之前在Spring Boot项目中通过MyBatis连接DB2返回的结果中存在一些字段, 这些字段的元素中缺少了一些符号,所以我现在通过在自己的电脑上通过MyBatis连接DB ...

  9. python 调用mysql存储过程返回结果集

    存储过程: delimiter | ),)) begin select * from tb_test where mid = imid and user = iuser; end; | delimit ...

随机推荐

  1. 关于Git的merge和rebase命令解析

    git rebase是对提交执行变基的操作.即可以实现将指定范围的提交"嫁接"到另外一个提交智商. 其常用的命令格式有: 用法1:git rebase --onto <new ...

  2. 关于MyBatis的工作流程

    1.从一个jdbc程序开始 public static void main(String[] args) { Connection connection = null; PreparedStateme ...

  3. PHP之数组遍历

    数组在PHP中是一个非常强大的武器,用起来方便.容易,由于使用起来异常灵活,用它就可以实现数据结构中的链表.栈.队列.堆以及所谓的字典.集合等,也可以转换成XML格式. 1.使用for for语句遍历 ...

  4. ASP.NET伪静态-无法读取配置文件,因为它超过了最大文件大小的解决办法

    一直都在使用微软URLRewriter,具体的使用方法我就不多说了,网上文章很多. 但最近遇到一个问题,就是当web.config文件里面设置伪静态规则过多,大于2M的时候,就报错:无法读取配置文件, ...

  5. hadoop命令报错:权限问题

    root用户执行hadoop命令报错: [root@vmocdp125 conf]# hadoop fs -ls /user/ [INFO] 17:50:42 main [RetryInvocatio ...

  6. JAVA中REPLACE和REPLACEALL的区别(转)

    replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:  1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(Char ...

  7. [.Net MVC] Win7下IIS部署

    这里简单的分三步实现网站的部署. 一.发布 VS2013中有发布选项,在需要发布的工程项目上(就是设置为启动项目的那个)右键,点“发布”选项: 然后会弹出一个窗口: 选择自定义,随便输入一个名字,然后 ...

  8. WTL 中CComboBoxEx显示不了的问题

    在使用WTL的CComboBoxEx时,InsertItem之后,运行程序,ComboBox显不了问题,其原因如下: I guess you want to place combo box to di ...

  9. 安卓热更新之Nuwa实现步骤

    安卓热更新之Nuwa实现步骤 最近热更新热修复的功能在安卓应用上越发火热,终于我的产品也提出了相应的需求. 经过两天的研究,搞定了这个功能,在这里还要多谢大神们的博客,大神们的原理分析很到位,不过对于 ...

  10. NHibernate多对多关联映射的实现

    上次用EF演示了数据库多对多关系的操作,这次我们还是引用上次的案例,来演示如何在C#当中使用NHibernate. 首先介绍一下NHibernate框架的来源.熟悉Java编程的读者肯定知道Hiber ...