mysql procedure返回多数据集
返回多数据集写法:
第一种
- 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返回多数据集的更多相关文章
- jdbc 处理mysql procedure返回的多个结果集
1:测试数据库表user mysql> desc user$$ +-------+-------------+------+-----+---------+----------------+ | ...
- MySQL 存储过程返回多个值
MySQL 存储过程返回多个值 在本教程中,您将学习如何编写/开发返回多个值的存储过程. MySQL存储函数只返回一个值.要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程 ...
- OpenLayers添加点【php请求MySQL数据库返回GeoJSON数据】
php请求MySQL数据库返回GeoJSON数据的实现方法请参见: http://www.cnblogs.com/marost/p/6234514.html OpenLayers[v3.19.1-di ...
- MYSQL procedure
没怎么接触过mysql procedure,今天建个calendar表还磨磨唧唧的,记录一下: CREATE PROCEDURE `new_procedure` (start_date DATA,en ...
- mysql更新返回值问题(更新内容跟之前内容一样,返回0)
mysql更新返回值问题 问: 有一界面要更新个人信息,有几十个text标签需要填写假设有一用户从用户列表点修改进入了修改页面,但又没有修改什么,马上点击保存这时,因为text标签非常多,不能够一一判 ...
- PHP 把返回的数据集转换成Tree树
/** * 把返回的数据集转换成Tree * @access public * @param array $list 要转换的数据集 * @param string $pid parent标记字段 * ...
- Python查询Mysql时返回字典结构的代码
Python查询Mysql时返回字典结构的代码 MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.D ...
- Spring Boot项目中MyBatis连接DB2和MySQL数据库返回结果中一些字符消失——debug笔记
写这篇记录的原因是因为我之前在Spring Boot项目中通过MyBatis连接DB2返回的结果中存在一些字段, 这些字段的元素中缺少了一些符号,所以我现在通过在自己的电脑上通过MyBatis连接DB ...
- python 调用mysql存储过程返回结果集
存储过程: delimiter | ),)) begin select * from tb_test where mid = imid and user = iuser; end; | delimit ...
随机推荐
- Objective-C /iphone开发基础:协议(protocol)
protocol协议时为了补充Objective-C 只能单继承的缺陷而增加的一个新功能.Objective-C重所有的方法都是虚方法,所以在oc重也就没有关键字 virtual一说,有了协议可以补充 ...
- 【转载】Hadoop和大数据:60款顶级大数据开源工具
一.Hadoop相关工具 1. Hadoop Apache的Hadoop项目已几乎与大数据划上了等号.它不断壮大起来,已成为一个完整的生态系统,众多开源工具面向高度扩展的分布式计算. 支持的操作系统: ...
- adb uninstall卸载apk 命令后跟的是包的名称
昨天在使用adb卸载程序,结果死活卸载不了.我输入的命令和系统提示如下: arthur@arthur-laptop:~$ adb uninstall com.hase.bclm.client-2.ap ...
- Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel
Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel Ext.Net GridPanel 有两种编辑模式:编辑单元格和编辑行. 单元格编辑: 行编辑: 可以看出,单元格编辑的时候,只 ...
- ios 获取字符串所需要占用的label的高度
// 设置字体大小 UIFont *fnt=[UIFont systemFontOfSize:16]; NSDictionary *attribute = @{NSFontAttributeNa ...
- C#与C++相比较之STL篇
引言 Program into Your Language, Not in It--<代码大全>.如何深入一门语言去编程?我认为有三步:熟悉它:知道它的局限性:扩展它.如何熟悉?不必说,自 ...
- OpenJudge/Poj 1661 帮助 Jimmy
1.链接地址: bailian.openjudge.cn/practice/1661 http://poj.org/problem?id=1661 2.题目: 总Time Limit: 1000ms ...
- OpenJudge / Poj 1044 Date bugs C++
链接地址: Poj:http://poj.org/problem?id=1044 OpenJudge:http://bailian.openjudge.cn/practice/1044/ 题目: 总时 ...
- JQuery(三) Ajax相关
JQuery大大简化了Ajax通用操作,开发者只需要指定请求URL,回调函数即可. 三个主要方法: $().param(obj):将obj参数(对象或数组)转化成查询字符串. {name:" ...
- Delphi IDE下载全地址
Delphi IDE下载全地址: http://pan.baidu.com/share/home?uk=1060104307#category/type=0 还是网友伟大呀.当然有钱的公司还是应该多多 ...