文档章节

mybatis调用视图和存储过程

mifans
 mifans
发布于 2016/10/20 09:51
字数 411
阅读 72
收藏 1

现在的项目是以Mybatis作为O/R映射框架,确实好用,也非常方便项目的开发。MyBatis支持普通sql的查询、视图的查询、存储过程调用,是一种非常优秀的持久层框架。它可利用简单的XML或注解用语配置和原始映射,将接口和java中的POJO映射成数据库中的纪录。

 

一.调用视图

如下就是调用视图来查询收益明细,sql部分如下:

<!-- 获取明细 -->
<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>

 

本文转载自:http://www.cnblogs.com/heyonggang/p/5324516.html

上一篇: 存储过程详解
下一篇: ASSERT的用法
mifans
粉丝 11
博文 204
码字总数 103669
作品 0
海淀
程序员
私信 提问
mybatis 调用存储过程,如何抛出sql异常

在用mybatis调用数据库的存储过程时,我发现有时即使mybatis失败了,乃至存储过程异常了。mybatis也不会抛出异常,下面是处理这种情况的方法 1. 有如下存储过程( sqlServer 2012) 只要将ERR...

Canaan_
2016/06/15
595
0
mybatis项目中如何调用oracle存储过程(procedure)

如题。这篇博客讲诉你如何在在spring+springmvc+mybatis项目中调用oracle的存储过程(procedure),其实主要是mybatis下如何调用存储过程,不带参数的就不说了,就说说带参数的存储过程如传参...

奔跑的菜菜
2016/01/07
3.7K
1
mybatis调用oracle存储过程

博客原文:使用mybatis执行oracle存储过程 存储过程在小公司用的不多,但是如果业务比较复杂或者性能要求比较苛刻的时候存储过程就派上用场了,ibatis的前期的一些版本貌似不支持存储过程因此...

蛙牛
2014/07/30
17.1K
3
JAVA后端常用框架SSM,readis,dubbo等。。。

一、SpringMVC http://blog.csdn.net/evankaka/article/details/45501811 spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,...

小贱是个程序员
2016/11/18
1K
0
MYSQL体系大纲

1.为什么选用MySQL数据库? 2.MySQL数据库安装和环境配置 3.SQL语句汇总(以MyBatis为例) 3.1.join从句 3.2.when case 3.3.union使用 3.4.in和exists区别 3.5.日期函数 3.6.拼接函数 Oracle除...

微尘鉴
2015/09/20
65
0

没有更多内容

加载失败,请刷新页面

加载更多

58. 静态工厂方法

参考:https://www.jianshu.com/p/ceb5ec8f1174 https://www.jianshu.com/p/fa15f63d399a 1.定义 用一个静态方法来对外提供自身实例的方法,即为我们所说的静态工厂方法(Static factory met...

20190513
26分钟前
5
0
Mybatis之StatementHandler

mybatis-3.4.6.release. 图1 StatementHandler是对CallableStatement、PreparedStatement、Statement的统一封装,在JDK中CallableStatement继承PreparedStatement,PreparedStatement继承Sta......

克虏伯
45分钟前
5
0
遇到API安全问题怎么办?F5 API加固解决方案怎么样?

  在各种APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优在以前都采用自已定义的接口和结构,对于公开访问的接口,专业点的都会做...

梅丽莎好
今天
10
0
迁Aliyun Redis踩坑之路 - 实践总结

背景: 从自建 redis(CacheCloud)到迁移到 aliyun redis 1. 踩“坑”一 问题: 平常小伙伴们在项目中可能用到redis key expire nofity的场景(比如:处理延时任务等),但是发现迁移后 ke...

少年与海
今天
4
0
干货:Kibana 可视化ElasticSearch数据展示分析

当你把数据存入ES中后,怎么更方面的查看这些数据,还想用不同的维度去看这些数据,是不是纠结,不能再专门搞个后台显示把。这里有神器 Kibana 专门干这个事情的,可以帮你把ES中的数据,通过...

枕邊書
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部