mysql返回集合
来源:互联网 发布:python搜索引擎 框架 编辑:程序博客网 时间:2024/06/11 20:43
今天想利用mysql存储过程返回多条记录,以前用oracle的游标可以直接返回.mysql不支持游标返回
通过找了资料原来可以这么做
CREATE DEFINER=`xxxx`@`%` PROCEDURE `getprizesuminfo`(opid VARCHAR(32),aid INT)BEGIN /** * 获取微信活动奖品数量,及参加次数 * * @author xuyw * @email xyw10000@163.com * @date 2014-04-02 */ SELECT p.id, IFNULL((p.prize_actual_sum-l.zjsum),0) ptotal, (SELECT COUNT(activityid) playsum FROM wxactivity_prize_log WHERE activityid = aid AND openid = opid) playsumFROM (SELECT id, prize_actual_sum FROM wxactivity_prize WHERE wxactivity_id = aid ORDER BY id) p LEFT JOIN (SELECT l.prizeid, COUNT(l.prizeid) zjsum FROM wxactivity_prize_log l WHERE l.is_prize = 2 AND l.activityid = aid GROUP BY l.prizeid) l ON p.id = l.prizeid; END$$DELIMITER ;这样就可以直接返回
List list=this.execute(sql,new CallableStatementCallback<List<Object[]>>() {@Override public List<Object[]> doInCallableStatement( CallableStatement cs) throws SQLException, DataAccessException { cs.setString(1, id); cs.setString(2, userid); List<Object[]> objects = new ArrayList<Object[]>(); boolean hadResults = cs.execute(); int i=0; while (hadResults) { System.out.println("result No:----"+(++i)); ResultSet rs = cs.getResultSet(); while (rs != null && rs.next()) { ResultSetMetaData rsmd =rs.getMetaData(); int count=rsmd.getColumnCount(); Object[] objArr = new Object[count]; for (int j = 1; j <= count; j++) { objArr[j-1]=rs.getObject(j); } objects.add(objArr); } hadResults = cs.getMoreResults(); //检查是否存在更多结果集 } return objects; } });
若不用spring可以这样
cs = con.prepareCall(sql); List<Object[]> objects = new ArrayList<Object[]>(); boolean hadResults = cs.execute(); int i=0; while (hadResults) { System.out.println("result No:----"+(++i)); ResultSet rs = cs.getResultSet(); while (rs != null && rs.next()) {Object[] objArr = new Object[3]; objArr[0] = rs.getString("id"); objArr[1] = rs.getString("ptotal"); objArr[2] = rs.getString("playsum"); objects.add(objArr); } hadResults = cs.getMoreResults(); //检查是否存在更多结果集 }
1 0
- mysql返回集合
- PHP学习手记之Mysql返回结果fetch操作集合
- 返回 list<> 集合异常
- hibernate返回map集合
- mybatis返回map集合
- Mysql 集合
- 有关返回集合的错误
- oracle存储过程返回集合
- Oracle函数返回Table集合
- 遍历json返回的集合
- 将枚举以集合返回
- Oracle返回表集合函数
- Arrays.asList返回的集合
- JDBC--Result 获取返回集合
- SqlHelper,增加返回实体集合
- mybatis里面返回list集合
- python mysql 返回json
- MyBatis+MySQL 返回参数
- 解决Win7 64bit + VS2010 使用opencv时出现提“应用程序无法正常启动(0xc000007b)”错误
- Android Fragment 基本介绍
- UIView视图在IB中创建的理解
- mongodb启动与关闭
- Liunx下Nginx安装问题
- mysql返回集合
- ios--OpenCV--画图像轮廓
- 掌握 Linux 调试技术
- 老程序员的下场
- NEMA-0183(GPRMC GPGGA)详细解释
- oralce 11g new feature 之 oracle restart
- 野渡梅香舟自横,浅吟彼岸情
- js实现分页
- qt4.8.5 与 redhat6.4 安装实践(总结)