现在的项目是以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>

最新文章

  1. 关于JavaScript中的delete操作
  2. 如何让老式浏览器支持html5新增的语义元素
  3. 先贴上代码:Random快排,快排的非递归实现
  4. yii框架常用url地址
  5. Jni碰到的一个异常
  6. a标签的href劫持,做判断后在跳转
  7. FZU 2125 简单的等式
  8. sqlserver数据库导入Mysql数据库问题
  9. Fragment传参
  10. filter的dispatcher节点
  11. poj2774
  12. 用pandas读取excel报错
  13. SPOJ Substrings
  14. 用python批量执行VBA代码
  15. Python总结篇——知识大全
  16. rocksDB vs InnoDB vsTokuDB
  17. Android传感器开发
  18. Android内存优化7 内存检测工具1 Memory Monitor检测内存泄露
  19. [转]SQL Server 2008支持将数据导出为脚本
  20. Django 视图之CBV

热门文章

  1. 复利计算软件v3
  2. Beginning.......
  3. HDU--杭电--1026--Ignatius and the Princess I--广搜--直接暴力0MS,优先队列的一边站
  4. replace
  5. 《数据结构》2.3单链表(single linked list)
  6. 数组求和,计算给定数组 arr 中所有元素的总和
  7. 封装pyMysql
  8. Visual Studio 2015 Update 3 ISO
  9. ios中文转码的一个奇葩问题
  10. linux tar命令的使用