框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

来源:互联网 发布:工行软件开发中心 编辑:程序博客网 时间:2024/06/09 20:27

本节主要内容

1:动态sql使用(trim标签、sql片段的使用)

2:总结&下节预告

本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

声明:本文系凯哥Java(www.kaigejava.com)原创,未经允许,禁止转载!

回顾:

在上一篇《框架学习系列 mybatis 第十四篇 mybatis动态sql及常用标签二》中我们知道什么是动态sql,也学会了常用的标签:where、if、set标签的使用。那么在本篇中,我们将继续学习剩下的标签

一:动态sql使用(trim标签、sql片段的使用)

1.1:trim标签

trim标签干嘛用?

trim标签是一个格式的标记(说的啥啊?不懂),

换句话来说:主要就是在自己包含的前面可以加些某些前缀,或者是在自己的后面加上某些后缀(依然一脸蒙比中~)

简单理解:trim标签有点类似于string类型中的replace的效果(或者可以理解为这货可以实现where和set同样的效果)

trim的属性有:

prefix:前缀覆盖并增加对应内容

suffix:后缀覆盖并追加其内容

prefixOverrides:前缀判断的条件

suffixOverrides:后缀判断的条件

1.2:使用案例

需求:同样查询条件有用户名、性别,查询对应的用户集合。

各位看官,咱先上大图

在Mapper-User.xml中:

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

说明:

<trim>:声明开始使用trim标签

</trim>:trim标签结束

prefix:前缀。也就是在之前添加追加什么

prefixOverides:前缀添加的判断条件。

concat:这个是mysql的连接函数,可以理解为加号在java中字符串连接的作用

上面sql语句其实就等同于上节课(《框架学习系列 mybatis 第十四篇 mybatis动态sql及常用标签一》)

中讲解的where if 标签的使用。

where if标签使用如下:

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

trim if 相当于where if 标签使用测试类:

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

执行的结果:

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

1.3:trim if相当于 set if 的使用(各位看官,自己可以练习练习)

1.4:sql片段的使用

1.4.1:sql片段是什么?使用sql片段有什么好处?

sql片段,就是预先定义后的一些sql语句。等其他sql需要的时候直接拿来用。

sql片段可以提高代码的可重用性

1.4.2:sql片段的使用

1.4.2.1:定义sql片段

在上面查询语句中我们可以将if 标签的sql语句提取出来。

在Mapper-User.xml中:

先定义sql片段

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

说明:

sql:声明sql片段开始

id:该sql片段唯一标识符。在当前的xml中是唯一的。

注:因为sql片段是公共的,所以最好不要将关键字带入。

比如:最好不要讲where、select等关键字声明在内

使用sql片段:

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

说明:

include:指明开始引用外部的

refid:注入需要引用的id.这个id必须是已经存在(已经声明的)

测试类:

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

运行结果:

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二

同样是查询到两条数据。说明执行没问题。

二:总结

通过本文学习,我们必须掌握的

1:sql片段的使用。这个在以后公司开发中也常用

了解的:

1:trime if 标签可以替换 where if或者是set if 不过一般很少使用

下节预告:

在下节课中,我们将学习到另外很有用的标签:foreach标签。这个标签可以处理list循环。同时我们还会讲解mybaits和hibernate的区别。欢迎大家学习下一篇《框架学习系列 mybatis 第十五篇 mybatis 常用标签三及与hibernate的比较》

原创粉丝点击