<select id="collPageCount" parameterType="java.util.Map" resultType="long">
select count(1) from ( <include refid="selectPage"></include> ) a
</select>
<select id="collListPage" parameterType="java.util.Map" resultMap="mycoll">
<include refid="selectPage"></include>
</select>
<sql id="selectPage">
SELECT
c.id as cid,
i.id AS iid,
i.type_id,
i.`name`,
i.img
FROM
wsp_collection c
LEFT JOIN wsp_vf_info i ON c.vf_id = i.id
<where>
<if test="userid != null and userid != '' ">
and c.user_id=#{userid}
</if>
</where>
and i.state=1
</sql>

  mybatis进行多条件查询的时候,如果传入的参数有int类型,对用非空判断只需要"id!= null''"即可,不需要进行"id!=''"的判断,否则查询条件会被忽略。

<sql id="condition_sql">
<if test="userid != null and userid != ''"> and user_id = #{userid} </if>
<if test="vfId != null and vfId != ''"> and vf_id = #{vfId} </if>
<if test="id != null"> and id =#{id}</if><!-- id为int型-->
</sql>
<select id="listPageCount" parameterType="java.util.Map" resultType="long">
select count(1) from
wsp_vf_plays
<where>
<include refid="condition_sql"></include>
</where>
</select>

  

Mybatis动态公用sql的更多相关文章

  1. mybatis动态注解sql编写注意事项

    最近在编写mybatis的动态注解sql遇到了不少的坑,在网上看到一篇讲的比较详细的文章,记录一下: https://mbd.baidu.com/newspage/data/landingshare? ...

  2. Mybatis动态构建Sql(无实体类)

    MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 例如,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询 ...

  3. Mybatis - 动态sql

    learn from:http://www.mybatis.org/mybatis-3/dynamic-sql.html mybatis支持动态拼接sql语句.主要有: if choose (when ...

  4. mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句

    mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. c ...

  5. Mybatis之动态构建SQL语句

    今天一个新同事问我,我知道如何利用XML的方式来构建动态SQL,可是Mybatis是否能够利用注解完成动态SQL的构建呢?!!答案是肯定的,MyBatis 提供了注解,@InsertProvider, ...

  6. 9.mybatis动态SQL标签的用法

    mybatis动态SQL标签的用法   动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么 ...

  7. 自己动手实现mybatis动态sql

    发现要坚持写博客真的是一件很困难的事情,各种原因都会导致顾不上博客.本来打算写自己动手实现orm,看看时间,还是先实现一个动态sql,下次有时间再补上orm完整的实现吧. 用过mybatis的人,估计 ...

  8. Mybatis动态SQL单一基础类型参数用if标签

    Mybatis动态SQL单一基础类型参数用if标签时,test中应该用 _parameter,如: 1 2 3 4 5 6 <select id="selectByName" ...

  9. 笔记:MyBatis 动态SQL

    有时候,静态的SQL语句并不能满足应用程序的需求.我们可以根据一些条件,来动态地构建SQL语句.例如,在Web应用程序中,有可能有一些搜索界面,需要输入一个或多个选项,然后根据这些已选择的条件去执行检 ...

随机推荐

  1. Java SE之Java工作原理

     在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器.这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口.编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后 ...

  2. H.264 SVC

    视频厂商POLYCOM,VIDYO和RADVISION等都推出H.264 SVC技术.针对H.264 SVC技术做个介绍. CISCO和POLYCOM都提供了免版税的H.264 SVC的版本. 其中o ...

  3. python之functools partial

    from functools import partial def aa(a,b,c): print ('a :',a) print ('b :',b) print ('c :',c) bb=part ...

  4. C. Trailing Loves (or L'oeufs?)

    题目链接:http://codeforces.com/contest/1114/problem/C 题目大意:给你n和b,让你求n的阶乘,转换成b进制之后,有多少个后置零. 具体思路:首先看n和b,都 ...

  5. CSS :invalid 选择器

    如果 input 元素中的值是非法的,实时提醒 <!DOCTYPE html> <html> <head> <meta charset="utf-8 ...

  6. CentOS 7以上版本Nginx开机自启

    Nginx+Center OS 7.x 开机启动设置 centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 ...

  7. ES系列目录

    ES系列一.CentOS7安装ES 6.3.1 ES系列二.CentOS7安装ES head6.3.1 ES系列三.基本知识准备 ES系列四.ES6.3常用api之文档类api ES系列五.ES6.3 ...

  8. imp高版本的dmp文件报错问题

    imp高版本的dmp文件报错问题   导出方:oracle 11R2  www.2cto.com     导入方:oracle 10R2   通过imp导入时提示如下:     解决方法:   通过编 ...

  9. Project Euler Problem6

    Sum square difference Problem 6 The sum of the squares of the first ten natural numbers is, 12 + 22  ...

  10. elasticsearch5.0.1集群一次误删除kibana索引引发的血案

    elasticsearch集群中一次删除kibana索引引发的血案 1.问题发生的过程: 早上的时候有某个索引无法看到报表数据,于是就点该报表多次,估计集群被点挂了,报错:Elasticsearch ...