mybatis调用mysql存储过程返回结果集
2015-07-09 17:44
821 查看
存储过程中经常需要返回结果集。 Mysql 中直接用 select 即可返回结果集。而 oracle 则需要使用游标来返回结果集。这一点 Mysql 相对比较方便,如下代码即可实现输出结果集:
存储过程定义:
在mybatis中调用存储过程,然后获取该结果集:
1、xml配置文件
注:有上面可知,mysql存储过程中可以直接使用select语句返回结果集,而且mybatis可以直接使用list接收这个结果集(无需游标)。
参考文章:http://yhjhappy234.blog.163.com/blog/static/316328322012455714892/
存储过程定义:
DELIMITER $$ DROP procedure IF EXISTS pro_sql_data1 $$ CREATE procedure pro_sql_data1(in sear_name varchar(2000)) BEGIN if sear_name is not null and sear_name!='' then select id,name,date_format(create_time,'%Y-%m-%d') as repDate from ad_place where name like concat('%',sear_name,'%'); ELSE select id,name,date_format(create_time,'%Y-%m-%d') as repDate from ad_place; end if; END$$ DELIMITER;执行结果:
在mybatis中调用存储过程,然后获取该结果集:
1、xml配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ifeng.iis.bean.iis.Report" > <resultMap type="java.util.HashMap" id="resultMap"> <result column="id" property="id" javaType="java.lang.Integer" jdbcType="INTEGER"/> <result column="name" property="name" javaType="java.lang.String" jdbcType="VARCHAR"/> <result column="repDate" property="repDate" javaType="java.lang.String" jdbcType="VARCHAR"/> <result column="summ" property="summ" javaType="java.lang.Long" jdbcType="BIGINT"/> </resultMap> <select id="test123" parameterType="java.util.Map" resultMap="resultMap" statementType="CALLABLE" > {call pro_sql_data( #{obj,jdbcType=VARCHAR,mode=IN} ) } </select> </mapper>java代码
public String query(String param) throws Exception { logger.info(param); Map queryMap = new HashMap(); queryMap.put("obj", param); //List<Map> listIis1 = reportDao.select4MapParam(queryMap, "currentSql"); List<Map> listIis2 =reportDao.select4MapParam(queryMap,"test123"); return JSONArray.fromObject(listIis2).toString(); }
注:有上面可知,mysql存储过程中可以直接使用select语句返回结果集,而且mybatis可以直接使用list接收这个结果集(无需游标)。
参考文章:http://yhjhappy234.blog.163.com/blog/static/316328322012455714892/
相关文章推荐
- 12. mysql show status
- MYSQL 启动错误193
- MySQL数据库表名、列名、别名区分大小写的问题
- 使用JMeter创建数据库(Mysql)测试
- MySQL INTO OUTFILE导出导入数据|mysqldump
- MySQL Study之--MySQL体系结构深入解析
- cmake 安装 mysql5.5.44
- 命令行(mysqldump)导出数据库、数据表
- MySQL Study之--MySQL体系结构深入解析
- mysql
- MySQL执行计划解读
- you can't specify target table for update in from clause Mysql 报错
- ubuntu14.04安装MySQL
- mysql处理高并发
- Mysql锁表
- 迁移Windows下的MySQL时字符乱码问题
- mysql 时间函数
- Mysql 性能调优
- 关于MYSQL今天新学的几个知识点
- select 1 from table