Mybatis动态公用sql
<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的更多相关文章
- mybatis动态注解sql编写注意事项
最近在编写mybatis的动态注解sql遇到了不少的坑,在网上看到一篇讲的比较详细的文章,记录一下: https://mbd.baidu.com/newspage/data/landingshare? ...
- Mybatis动态构建Sql(无实体类)
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 例如,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询 ...
- Mybatis - 动态sql
learn from:http://www.mybatis.org/mybatis-3/dynamic-sql.html mybatis支持动态拼接sql语句.主要有: if choose (when ...
- mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. c ...
- Mybatis之动态构建SQL语句
今天一个新同事问我,我知道如何利用XML的方式来构建动态SQL,可是Mybatis是否能够利用注解完成动态SQL的构建呢?!!答案是肯定的,MyBatis 提供了注解,@InsertProvider, ...
- 9.mybatis动态SQL标签的用法
mybatis动态SQL标签的用法 动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么 ...
- 自己动手实现mybatis动态sql
发现要坚持写博客真的是一件很困难的事情,各种原因都会导致顾不上博客.本来打算写自己动手实现orm,看看时间,还是先实现一个动态sql,下次有时间再补上orm完整的实现吧. 用过mybatis的人,估计 ...
- Mybatis动态SQL单一基础类型参数用if标签
Mybatis动态SQL单一基础类型参数用if标签时,test中应该用 _parameter,如: 1 2 3 4 5 6 <select id="selectByName" ...
- 笔记:MyBatis 动态SQL
有时候,静态的SQL语句并不能满足应用程序的需求.我们可以根据一些条件,来动态地构建SQL语句.例如,在Web应用程序中,有可能有一些搜索界面,需要输入一个或多个选项,然后根据这些已选择的条件去执行检 ...
随机推荐
- MySQL - 日常操作三 mysql慢查询;
sql语句使用变量 use testsql; set @a=concat('my',weekday(curdate())); # 组合时间变量 set @sql := concat('CREATE T ...
- 最新Linux系统Ubuntu16.04搭建HUSTOJ(LAMP环境)
应该跟着下面的步骤就OK了吧! 1.升级软件库,更新软件 打开终端 输入 sudo apt-get update sudo apt-get upgrade 2.安装mysql5.7 (注意:mysql ...
- <转载>iTerm2使用技巧
原文链接:http://www.cnblogs.com/756623607-zhang/p/7071281.html 1.设置窗口 定位到 [Preferences - Profiles - Wi ...
- Javascript定义变量
在JavaScript中通过var来定义变量,不管是数字还是字符串,都可以通过这种方式来定义:我们既可以在声明变量的同时给变量赋值,也可以先声明变量,再给变量赋值. <script> va ...
- 浏览器调用接口发现Provisional headers are shown
一次请求时候报错 无论如何也找不到错误,后台接口和前端请求都是正确的.后来发现是 自己浏览器上装了广告拦截的插件 把我这个请求给拦截 果断卸载插件立马就好了.
- Vue.js用脚手架创建项目
安装全局脚手架 cnpm install vue-cli -g vue --version 用脚手架创建项目 创建项目 运行项目 停止项目:Ctrl+C 修改端口 config - index.js ...
- tidb 架构~tidb 理论学习(1)
一 简介:介绍新型NEW SQL数据库tidb 二 目的: tidb出现的目的,就是代替mysql+中间件,实现横向水平扩展 三 核心理论观点 1 MySQL 是单机数据库,只能通过 XA 来满足跨数 ...
- CSS font-family 各名称一览表
参考链接:https://blog.csdn.net/cddcj/article/details/70739481
- SRS+flv.js打造兼容性较高的直播、点播平台
**************************************************************************************************** ...
- mysql系列一、mysql数据库规范
一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 表必须使用InnoDB存储引擎. 表必须 ...