怎么在MyBatis中配置动态SQL

  介绍

本篇文章为大家展示了怎么在MyBatis中配置动态SQL,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强>动态SQL

什么是动态SQL:

动态SQL就是根据不同的条件生成不同的SQL语句

<李>

如果<李>

选择(当,否则)

<李>

修剪(,集)

<李>

foreach

1,搭建环境

建表

CREATE  TABLE “博客”(   “id”,才能VARCHAR (50), NOT  NULL  COMMENT  & # 39;博客id # 39;,   “标题”,才能VARCHAR (100), not  null  comment  & # 39;博客标题& # 39;,   “作者”,才能VARCHAR (30), not  null  comment  & # 39;博客作者& # 39;,   “creat_time”,才能datetime  not  null  comment  & # 39;创建时间& # 39;,   “视图”,才能int (30), not  null  comment  & # 39;浏览量& # 39;   )引擎=InnoDB  DEFAULT  CHARSET=utf8

创建一个基础工程

导包

编写配置文件

编写实体类

@ data   public  class  Blog  {   private 才能int  id;   private 才能String 标题;   private 才能String 作者;   private 才能;Date  creatTime;   private 才能int 意见;   }

编写实体类对应的Mapper接口和映射器。xm

2,如果

& lt; select  id=皅ueryBlogIF", parameterType=癿ap", resultType=癱om.rui.pojo.Blog"比;   select  *,才能得到mybatis.bolg  where  1=1   & lt;才能if 测试=皌itle  !=, null"比;   ,,,以及title =, #{标题}   & lt;才能/if>   & lt;才能if 测试=癮uthor  !=, null"比;   ,,,以及author =, #{作者}   & lt;才能/if>   & lt;/select> @Test   public  void  queryBlogIF () {   SqlSession 才能;SqlSession =, MyBatisUtils.getSqlSession ();   BlogMapper 才能;mapper =, sqlSession.getMapper (BlogMapper.class);   HashMap 才能;map =, new  HashMap ();   map.put才能(“author",“尹锐“);   List<才能;Blog>, blogs =, mapper.queryBlogIF(地图);   for 才能;(Blog  Blog :博客),{   ,,,System.out.println(博客);   ,,}   sqlSession.close才能();   }

3,选择(当,否则)

& lt; select  id=皅ueryBlogChoose", parameterType=癿ap", resultType=癱om.rui.pojo.Blog"比;   select  *,才能得到mybatis.bolg   & lt;才能where>   ,,,& lt; choose>   ,,,,,& lt; when 测试=皌itle  !=, null"比;   ,,,,,,,title=#{标题}   ,,,,,& lt;/when>   ,,,,,& lt; when 测试=白髡?=null"比;   ,,,,,,,以及author =, #{作者}   ,,,,,& lt;/when>   ,,,,,& lt; otherwise>   ,,,,,,,以及views =, #{观点}   ,,,,,& lt;/otherwise>   ,,,& lt;/choose>   & lt;才能/where>   & lt;/select>

4,修剪(,集)

select  *得到mybatis.bolg   & lt; where>   & lt; if 测试=皌itle  !=, null"比;   title 才能=,#{标题}   & lt;/if>   & lt; if 测试=癮uthor  !=, null"比;   以及才能author =, #{作者}   & lt;/if>   & lt;/where> & lt; update  id=皍pdateBlog", parameterType=癿ap"比;   update  mybatis.bolg才能   & lt;才能set>   ,,,& lt; if 测试=皌itle  !=, null"比;   ,,,,,title =, #{标题},   ,,,& lt;/if>   ,,,& lt; if 测试=癮uthor  !=, null"比;   ,,,,,author =, #{作者},   ,,,& lt;/if>   & lt;才能/set>   where 才能;id =, # {id}   & lt;/update>

所谓的动态SQL,本质还是SQL语句,只是我们可以在SQL层面,去执行一些逻辑代码

5, Foreach

select  *,得到user  where  1=1,以及   ,& lt; foreach 项=癷d",指数=癷ndex",收集=癷ds"   ,才能打开=?“,分离器=皁r",关闭=?“比;   ,,,# {id}   ,& lt;/foreach>      (id=1,趁机id=2,趁机id=3)

怎么在MyBatis中配置动态SQL”> </p> <pre类= & lt; !—   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在MyBatis中配置动态SQL