java代码

  1. @RequestMapping(value = "/testView", method = RequestMethod.GET)
  2. public @ResponseBody String testView(HttpServletRequest request, HttpServletResponse response) throws IOException {
  3. Map<String, Object> paraMap = new HashMap<String, Object>();
  4. paraMap.put("userType", "doctor");
  5. List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
  6. list = procedureMapper.testView(paraMap);
  7. if(list != null && list.size() > 0){
  8. for (int i = 0; i < list.size(); i++) {
  9. System.out.println(list.get(i));
  10. }
  11. }
  12. return null;
  13. }

mapper

  1. package cn.zsmy.mapper;
  2.  
  3. import java.util.List;
  4. import java.util.Map;
  5.  
  6. import cn.zsmy.entity.User;
  7. import cn.zsmy.form.UserForm;
  8. import cn.zsmy.mapper.base.SimpleMapper;
  9. import cn.zsmy.tmp.core.MyBatisRepository;
  10.  
  11. /**
  12. * @ClassName: ProcedureMapper
  13. * @Description: 调用存储过程与视图
  14. * @author 师海明
  15. * @date 2016年6月13日 上午11:52:38
  16. *
  17. */
  18. @MyBatisRepository
  19. public interface ProcedureMapper extends SimpleMapper<UserForm,User>{
  20.  
  21. Map<String, Object> testProcedure(Map<String, Object> paraMap);
  22.  
  23. List<Map<String, Object>> testView(Map<String, Object> paraMap);
  24. }

mapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="cn.zsmy.mapper.ProcedureMapper" >
  4.  
  5. <!-- 调用存储过程查询 -->
  6. <select id="testProcedure" parameterType="java.util.Map" statementType="CALLABLE" resultType="java.util.HashMap">
  7. {call loginandreg(
  8. #{out_ret,mode=OUT,javaType=java.lang.Integer,jdbcType=INTEGER},
  9. #{out_desc,mode=OUT,javaType=java.lang.String,jdbcType=VARCHAR},
  10. #{userId,jdbcType=VARCHAR,mode=OUT},
  11. #{user_pwd,jdbcType=VARCHAR,mode=IN},
  12. #{nickname,jdbcType=VARCHAR,mode=IN}
  13. )
  14. }
  15. </select>
  16.  
  17. <!-- 调用视图查询 -->
  18. <select id="testView" parameterType="java.util.Map" resultType="java.util.HashMap">
  19. select username, nickname, dept from test_view where user_type=#{userType}
  20. </select>
  21.  
  22. </mapper>

视图

  1. DROP VIEW IF EXISTS `palm_2_0_16`.`test_view`;
  2. CREATE VIEW `palm_2_0_16`.`test_view`
  3. AS
  4. SELECT u.username,u.nickname,d.dept, u.user_type FROM tb_user u, tb_doctor d WHERE d.id=u.id ;

备注:

mapper.xml中where后面的参数条件一定是在视图中返回的,不然会报错。

mybatis mysql 调用视图的更多相关文章

  1. mybatis调用视图和存储过程

    现在的项目是以Mybatis作为O/R映射框架,确实好用,也非常方便项目的开发.MyBatis支持普通sql的查询.视图的查询.存储过程调用,是一种非常优秀的持久层框架.它可利用简单的XML或注解用语 ...

  2. SpringMVC+Spring+mybatis项目从零开始--Spring mybatis mysql配置实现

    上一章我们把SSM项目结构已搭建(SSM框架web项目从零开始--分布式项目结构搭建)完毕,本章将实现Spring,mybatis,mysql等相关配置. 1.    外部架包依赖引入 外部依赖包引入 ...

  3. Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建(转)

    这篇文章主要讲解使用eclipse对Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建过程,包括里面步骤和里面的配置文件如何配置等等都会详细说明. 如果还没有搭建好环境( ...

  4. freemarker + spring mvc + spring + mybatis + mysql + maven项目搭建

    今天说说搭建项目,使用freemarker + spring mvc + spring + mybatis + mysql + maven搭建web项目. 先假设您已经配置好eclipse的maven ...

  5. Spring+Mybatis+Mysql搭建分布式数据库访问框架

    一.前言 用Java开发企业应用软件, 经常会采用Spring+MyBatis+Mysql搭建数据库框架.如果数据量很大,一个MYSQL库存储数据访问效率很低,往往会采用分库存储管理的方式.本文讲述如 ...

  6. eclipse下SpringMVC+Maven+Mybatis+MySQL项目搭建

    这篇文章主要讲解使用eclipse对Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建过程,包括里面步骤和里面的配置文件如何配置等等都会详细说明. 接下来马上进入项目搭建 ...

  7. SpringBoot(五)Springmvc+Mybatis+mysql

    为了整合这个花了,好长时间,因为上几个连在一起,在pom文件中有没注释的配置,导致我找这个问题找了好久.下面开始 1,先new project 时选择spring initializr,新建好一个空项 ...

  8. MySQL之视图、触发器、事务、存储、函数、流程控制

    一.视图 视图就是一个虚拟表,我们把复杂的sql语句后看到的虚拟表封装起来,给他取个名字,当我们下次使用的时候,就不用再去写复杂的sql语句,直接调用封装后的视图名字,就可以得到我们想要的表,然后就可 ...

  9. MySQL之视图、触发器、事务、存储过程、函数 流程控制

    MySQL之视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 MySQL这个软件想将数据处理的所有事情,能够在mysql这个层面上全部 ...

随机推荐

  1. C#获取EF实体对象或自定义属性类的字段名称和值

    在年前上班的时候遇到了一个问题是这样描述的:我前台设计一个页面,是标签和文本框,当用户修改了哪个文本框的值,将该修改前的值.修改后的值,该值对应的字段,该值对应的行id获取到保存到数据库的某张表里.现 ...

  2. Xcode 7 PCH宏文件的配置和使用---学会使用宏定义

    使用宏的目的是什么? 由于实际开发中,有时候一些设置信息需要重复使用(例如设置打印信息.配置颜色.配置宽度等),如果每次都手动去敲每次都去创建会很麻烦.虽然宏使用的时候会占用内存,可是目前来说大部分开 ...

  3. 关于APK签名的一些东西

    什么是APK 了解APK签名之前,首先要知道什么是apk文件:APK是AndroidPackage的缩写,即Android安装包(apk),APK文件其实就是zip格式的文件,只是后缀被改为了apk, ...

  4. C# 利用反射

    .NET基础篇——反射的奥妙 C#获取实体类属性名和值 | 遍历类对象 c#通过反射获取类上的自定义特性 C#利用反射+特性实现简单的实体映射数据库操作类

  5. 【转】关于字符编码,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…)

    转载地址:http://www.imkevinyang.com/2010/06/%E5%85%B3%E4%BA%8E%E5%AD%97%E7%AC%A6%E7%BC%96%E7%A0%81%EF%BC ...

  6. springmvc json字符串转化成json对象

    问题出现在 :页面数据列表的展示出现 [object HTMLInputElement] 找到问题的所在原因后又三种解决方案 一:格式化json字符串为json对象字符串 success:functi ...

  7. ubuntu下安装JDK并搭建activeMQ

    1.安装JDK,网上有人说activeMQ支持持JDK1.7及以上版本,未实际测试,保险起见我这里直接安装JDK1.7. #apt-get install openjdk--jdk 2.设置环境变量 ...

  8. h5网页中使用打电话功能

    如果需要在移动浏览器中实现拨打电话,发送email,美国服务器,调用sns等功能,移动手机WEB页面(HTML5)Javascript提供的接口是一个好办法. 采用url链接的方式,实现在Safari ...

  9. <<Windows via C/C++>>学习笔记 —— 线程优先级【转】

    转自:http://www.cnblogs.com/wz19860913/archive/2008/08/04/1259807.html 每个线程都有一个“优先级”,范围是0-31,0为最低优先级,3 ...

  10. Qt on Android 蓝牙开发

    版权声明:本文为MULTIBEANS ORG研发跟随文章,未经MLT ORG允许不得转载. 最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本 ...