mybatis调用视图和存储过程
现在的项目是以Mybatis作为O/R映射框架,确实好用,也非常方便项目的开发。MyBatis支持普通sql的查询、视图的查询、存储过程调用,是一种非常优秀的持久层框架。它可利用简单的XML或注解用语配置和原始映射,将接口和java中的POJO映射成数据库中的纪录。
一.调用视图
如下就是调用视图来查询收益明细,sql部分如下:
|
1
2
3
4
5
6
|
<!-- 获取明细 --><select id ="getContactEarnsDetail" resultType= "java.util.Map" parameterType ="java.lang.Integer"> select title,trade_time,trade_amount from v_contacts_earn where user_id = #{userId}</select > |
该视图返回的数据类型为map。
mapper部分如下:
|
1
|
List<Map<String, Object>> getContactEarnsDetail(Integer userId); |
接口部分如下:
List<Map<String, Object>> getContactEarnsDetail(Integer userId);
实现如下:
@Override
public List<Map<String, Object>> getContactEarnsDetail(Integer userId) {
Assert. notNull(userId); return contactEarnsMapper.getContactEarnsDetail(userId);
}
如上例所示,调用视图如同调用正常的sql查询语句一般。
二.调用存储过程
调用存储过程可能还会有返回结果集,在这里我主要针对返回结果集的情况进行阐述。
(1)含有返回结果集
如存储过程结构如下:
p_my_wallet(IN var_user_id INT);
参数是用户id
revenue_today 今日收益
revenue_contacts 人脉收益
balance 可用余额
sql部分如下:

<!-- 获取钱包信息 -->
<select id="getMyWallet" parameterType="java.lang.Integer" resultType="java.util.Map" statementType="CALLABLE">
{
call p_my_wallet(
#{userId,jdbcType=INTEGER,mode=IN}
)
}
</select>

则mapper部分为:
Map<String, Object> getMyWallet(@Param("userId")Integer userId);
接口部分为:
Map<String, Object> getMyWallet(Integer userId);
(2)没有返回结果集
sql部分如下:
< select id= "cardBuild" statementType ="CALLABLE">
<![CDATA[
{call p_insert_card_build_info (#{is_customized_,mode=IN,jdbcType=INTEGER},#{face_value_,mode=IN,jdbcType=INTEGER},#{number_,mode=IN,jdbcType=INTEGER})}
]]>
</ select>
mybatis调用视图和存储过程的更多相关文章
- Mybatis调用数据库的存储过程和方法
转载. https://blog.csdn.net/ml0228123/article/details/81002258 上次的项目,要求我用java代码调用存储过程,折腾了好久.最后总算成功了 ...
- mybatis调用mysql的存储过程(procedure),实现查询操作(student表中的某个年级中的总人数 select (1) 或者 select (*))
step1:在mysql cmd中新建存储过程: drop procedure if exists queryCountByGrade ; delimiter // -- 定义存储过程结束符号为// ...
- MyBatis调用Oracle的存储过程
Mapper.xml文件: --------------------------------- <parameterMap type="map" id="class ...
- 使用mybatis调用存储过程(注解形式和配置文件形式)
最近在看资料中涉及到mybatis,突然想到mysql中的视图.存储过程.函数.现将在使用mybatis调用mysql的存储过程使用总结下: 使用的环境:mybatis3.4.6,mysql 5.6, ...
- mybatis mysql 调用视图
java代码 @RequestMapping(value = "/testView", method = RequestMethod.GET) public @ResponseBo ...
- MyBatis调用Oracle存储过程
MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...
- 关于用mybatis调用存储过程时的入参和出参的传递方法
一.问题描述 a) 目前调用读的存储过程的接口定义一般是:void ReadDatalogs(Map<String,Object> map);,入参和出参都在这个map里 ...
- sqlserver存储过程及mybatis调用——待续
创建带输入参数存储过程 use yanantestgoif exists (select * from sys.objects where name='yanan')drop procedure ya ...
- mysql存储过程且mybatis调用
首先,需要执行符DELIMITER ,建议用//,即在存储过程开始前定义delimiter //,在结束后加上//,最后加上DELIMITER ; 具体原因@参考文章1写的很清楚,不再赘述. 参考文章 ...
随机推荐
- [暴力搜索] POJ 3087 Shuffle'm Up
Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10003 Accepted: 4631 Des ...
- 获取当前时间UTC时间的下一个15分钟时间点
ZonedDateTime zdt = ZonedDateTime.now(ZoneOffset.UTC); int now15Minute = zdt.getMinute() / P15MINUTE ...
- TRACERT命令
这半个月 服务器从联通线路换到移动线路 导致基层用联通和电信线路的用户 上不去收费软件 tracert 120.194.42.142:8090 发现路由器 解析地址绕过很多条街后 出现丢包现象 联系 ...
- 在一个老外微信PM的眼中,中国移动App UI那些事儿
本文编译自Dan Grover的博客,他现在是腾讯微信的产品经理.以下是他从旧金山搬到广州后的近半年时间里,在试用过微信微博等中国主流移动App后,总结出的中美App在设计理念上的差异,并对中国移动A ...
- linux基本常用命令列举
上回装完虚拟机中的linux系统了,进入找到terminal,打开命令行界面 pwd:展示目前为止绝对路径 cd cd~:跳转到/home/yy的位置 cd-:跳转到上一步的位置 cd path(绝对 ...
- jQuery--选择器总结
传统选择器:$('#test') id选择器 $('.test') class选择器$('p') 标签选择器$('*') 通配符选择器$('div,span,.myclass') 多个元素选择器层次选 ...
- Oracle查询数据库中的所有表
SELECT A.TABLE_NAME 表英文名, A.TAB_COMMENTS 表中文名, A.COLUMN_ID 序号, A.COLUMN_NAME 英文名, ...
- Promise与Defer认识
1.deffer对象:jquery的回掉函数解决方案:含义是延迟到未来某个点再执行: 2.$.ajax链式写法: $.ajax("test.php") .done(func ...
- 一个很奇怪的问题,程序没有改动加密参数应该也没有变化.但是两次的加密结果却不一致.md5加密问题
从图上我们看出20160803的加密结果是AAEBA9C578EA522215EAE76AFCAF250.时间是9.4分 现在我们再看这个同样的加密地址与时间结果却是另一种 31672B16..... ...
- ios上架报错90080,90087,90209,90125 解决办法
ERROR ITMS-90087: "Unsupported Architectures. The executable for yht.temp_caseinsensitive_renam ...