mybatis的核心就是动态sql.

什么是动态sql:对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。

这篇文章讲解sql中的if语句。它可以对查询条件进行判断,如果输入参数不为空才进行查询条件的拼接。这篇文章的核心就是下面的这段代码。

<!-- 
<where></where>相当于sql语句中的where关键字。
这个标签还有一个功能就是自动会去掉第一个and.,比如下面两句sql代码,如果第一个满足的那么就会去掉and这个关键字。 -->
<where>
<if test="userCustom!=null">
<if test="userCustom.sex!=null and userCustom.sex!=''">
and user.sex= #{userCustom.sex}
</if>
<if test="userCustom.username!=null and userCustom.username!=''" > and user.username=#{userCustom.username}
</if> </if> </where>

下面给出u具体案例:

案例代码结构如下:

aaarticlea/png;base64,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" alt="" />

除了userMapper.xml和Mybatis_mappertest.java要修改外,其他的代码都不用变。

userMapper.xml代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- nanmespace:命名空间。 作用就是对sql进行分类话管理,理解Sal分离 注意:使用mapper代理方式,namespace有特殊重要的作用
--> <mapper namespace="cn.itcast.mybatis.mapper.userMapper"> <!--
这里的id要和Mapp接口里面的函数名字一模一样。parameterType表示输入的类型,
resultType表示输出的类型 -->
<select id="findUserList" parameterType="cn.itcast.mybatis.po.UserQueryVo" resultType="cn.itcast.mybatis.po.UserCustom">
SELECT id ,username FROM USER WHERE user.sex= #{userCustom.sex} AND user.username=#{userCustom.username}
</select> <!--
定义resultMap
将SELECT id id_,username username_ FROM USER 和User类中的属性做一个映射关系 type:resultMap最终映射的java对象类型,可以使用别名
id:对resultMap的唯一标识。
-->
<resultMap type="user" id="userResultMap">
<!--
id:表示查询结果集中唯一的标识。
column:查询出来的列名
property:type指定的pojo类型中的属性名
最终resultMap对column和property作一个映射关系(对应关系) -->
<id column="id_" property="id"/>
<result column="username_" property="username"/>
</resultMap> <select id="findUserByResultMap" parameterType="cn.itcast.mybatis.po.UserQueryVo" resultMap="userResultMap">
SELECT id id_,username username_ FROM USER
<!-- where可以自动去掉条件中的第一个and
-->
<where>
<if test="userCustom!=null">
<if test="userCustom.sex!=null and userCustom.sex!=''">
and user.sex= #{userCustom.sex}
</if>
<if test="userCustom.username!=null and userCustom.username!=''" > and user.username=#{userCustom.username}
</if> </if> </where> </select> </mapper>

测试代码Mybatis_mappertest.java代码如下:

package cn.itcast.mybatis.first;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test; import cn.itcast.mybatis.mapper.userMapper;
import cn.itcast.mybatis.po.User;
import cn.itcast.mybatis.po.UserCustom;
import cn.itcast.mybatis.po.UserQueryVo; public class Mybatis_mappertest { private SqlSessionFactory sqlSessionFactory;
@Before
public void setup() throws IOException
{ String resource="SqlMapConfig.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
//主要是生成SqlsessionFactory。
this.sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void testMaper()
{
SqlSession sqlSession=null; sqlSession=sqlSessionFactory.openSession();
//生成代理类
userMapper userMapper=sqlSession.getMapper(userMapper.class);
//创建包装对象,设置查询条件
UserQueryVo userQueryVo=new UserQueryVo();
UserCustom userCustom=new UserCustom(); // 注意我把这里的sex注销掉了,也就是说sex没有值,那么我们用的是动态的sql语句,就是说sex不会被拼接进去吧
// userCustom.setSex("1");
userCustom.setUsername("王王");
userQueryVo.setUserCustom(userCustom); userMapper.findUserByResultMap(userQueryVo); } }

运行如下:

DEBUG [main] - ==>  Preparing: SELECT id id_,username username_ FROM USER WHERE user.username=?

看到没,这里得sql语句中没有 and user.sex= #{userCustom.sex}这条语句。也就是说没有拼接上去。

我们再改一下:干脆把整个userCustom都不输入进去。

结果如下:

DEBUG [main] - ==>  Preparing: SELECT id id_,username username_ FROM USER

看到没,这里的sql语句中什么where后面的语句都没有拼接上去了。

16Mybatis_动态sql_if判断的更多相关文章

  1. MyBatis3_[tp_38~]_动态sql_if_判断&OGNL_where标签_

    笔记要点出错分析与总结 /** 笔记: * 查询的时候,如果某些条件,没带可能SQL拼装会有问题; * 1.-->给where 后面加上 1=1, 以后的条件都and XXX * 2. < ...

  2. mybatis_05动态SQL_if和where

    If标签:作为判断入参来使用的,如果符合条件,则把if标签体内的SQL拼接上. 注意:用if进行判断是否为空时,不仅要判断null,也要判断空字符串‘’: Where标签:会去掉条件中的第一个and符 ...

  3. java数组反射实现动态的判断一个对象是否是数组并且对数组进行拆包输出

    public static Map<String, String> maptoMapString(Map<String, ?> map) { return map.entryS ...

  4. npoi的用法,动态的判断单元格的大小,设置列的宽度

    public MemoryStream GridToExcelByNPOI(DataTable dt, string strExcelFileName) { HSSFWorkbook wk = new ...

  5. Vue 标签Style 动态三元判断绑定

    <div  :style=" 1==1 ? 'display:block' : 'display:none' "></div> v-bind:style 的 ...

  6. 动态sql语句,非存储过程,如何判断某条数据是否存在,如果不存在就添加一条

    已知一个表 table 里面有两个字段  A1 和 A2 如何用动态语句 判断 A1 = A , A2=B 的数据是否存在,如果不存在,就添加一条数据, A1 = A , A2 = B INSERT  ...

  7. c++ 动态判断基类指针指向的子类类型(typeid)

    我们在程序中定义了一个基类,该基类有n个子类,为了方便,我们经常定义一个基类的指针数组,数组中的每一项指向都指向一个子类,那么在程序中我们如何判断这些基类指针是指向哪个子类呢? 本文提供了两种方法 ( ...

  8. mybatis入门基础(五)----动态SQL

    一:动态SQL 1.1.定义 mybatis核心对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装. 1.2.案例需求 用户信息综合查询列表这个statement的定义使用动态s ...

  9. Mybatis学习记录(五)----Mybatis的动态SQL

    1.  什么是动态sql mybatis核心 对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装. 1.1 需求 用户信息综合查询列表和用户信息查询列表总数这两个statemen ...

随机推荐

  1. Create a “% Complete” Progress Bar with JS Link in SharePoint 2013

    Create a “% Complete” Progress Bar with JS Link in SharePoint 2013 SharePoint 2013 has a lot new fea ...

  2. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q77-Q80)

    Question 77You have a SharePoint list named Announcements.You have an event receiver that contains t ...

  3. 关于Activity销毁,而绘制UI的子线程未销毁出现的问题

    项目总结 ----------------------------------------------------------------------------------------------- ...

  4. IOS 杂笔- 6(KVC-KVO)

    kvc: 键值编码的基本概念 1:键值编码是一个用于间接访问对象属性的机制,使用该机制不需要调用存取方法和变量实例就可以访问对象属性. 2:键值编码方法在Objective-C非正式协(类别)NSKe ...

  5. iOS 学习 - 7.限制 TextField 输入字符长度

    #pragma mark -- TextField代理 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange: ...

  6. Android 网络编程基础之简单聊天程序

    前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: package com.jiao.socketdemo; import java.io.Buffered ...

  7. Windows7下Blend for Visual Studio 2012使用问题

    目前开发的系统里很多控件样式和动画比较复杂,应该是之前同事用Blend做的,这种神器不用太浪费了,自己也准备试试. 系统环境Windows7+Visual Studio 2012 1.Windows7 ...

  8. C++中派生类对象的内存布局

    主要从三个方面来讲: 1 单一继承 2 多重继承 3 虚拟继承 1 单一继承 (1)派生类完全拥有基类的内存布局,并保证其完整性. 派生类可以看作是完整的基类的Object再加上派生类自己的Objec ...

  9. Effective Java 06 Eliminate obsolete object references

    NOTE Nulling out object references should be the exception rather than the norm. Another common sour ...

  10. Android程序入口以及项目文件夹的含义和使用总结—入门

    新接触一门程序或者开发框架,我一般都要先弄清楚程序的入口在哪里,程序怎么运行的:建立一个项目后,各个文件夹有什么作用以及如何使用等等.理清楚这些东西对以后开发是很有好处的,古话说得好,工欲善其事,必先 ...