一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_41147260/article/details/81282068

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

昨天,我们就学习了mybatis的 一下相关的知识,文章开头我们级提到它可以解决SQL的硬编码问题,但是根据昨天的文章,我们并没有看出mybatis的优势。今天我们来使用mybatis中的动态sql来解决我们仍有的困惑。

动态 SQL

在mybatis框架中,动态sql是其强大的特性之一。大家在之前的jdbc的操作时候有没有感觉到去拼接sql语句的痛苦,先是拼接成变量,在作为数据参数传入然后在查询等等步骤,十分的麻烦。

为了解决这个sql的拼接问题,动态sql于是就出现了。我们通过使用动态sql的标签从而解决sql语句的拼接问题,也减少了我们sql语句的代码量。

标签

对于标签的使用,我们只需要在我们配置sql语句的Mapper.xml文件中直接修改sql语句就可以了。

1、If标签

假定我们设置了一条多条件查询的SQL语句,当我们在输出的时候,我们只传了一个参数,这时候我们就会看到搜索结果为空,就像下图。

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

修改前的sql语句是这个样子的。

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

改造之后的样子如下图,我们让这条sql永远成立,所以加上了1=1,if标签中的text中加入我们的条件,就是性别字段不是null或者为空,我们在第一行sql语句后面加上and sex=#{sex}来接收数据。一次类推。

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

运行之后的效果是下面这个样子的。

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

我们可以看到where 1=1永远都在,我们不想要输出这个怎么办,接下来就使用到了我们的where标签。

2、where标签

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

我们看到,我们将where 1=1改成where标签即可实现对sql语句的改造,效果图如下。

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

没有了where 1=1是不是很清爽~

3、Sql片段

在Sql中我们可以将重复的sql提取出来,使用时用include引用即可,最终达到sql重用的目的。

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

我们把sql中经常重复的片段提取出来,使用用<sql>包装起来,并加上id标识,我们在下面使用include引入即可。

4、foreach标签

对于这个标签,我们毫无疑问就知道是用于循环遍历了,可以实现我们多id查询。

例如:SELECT * FROM user WHERE id IN (1,10,24)

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

我们可以看到结果就是下面这个样子。

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?


上面就是我们讲到的Mybatis中强大的特性动态sql中的一些常用的标签,当我们大量使用sql语句的时候,我们便能体验出其中的优势,比起jdbc起码减少了50%以上的代码量,但这也是mybatis的缺点之一SQL语句的编写工作量较大。个人原创,请多指教~

明天我们开始学习Spring,让代码在少一半!有学习到的话,记得点个关注支持一下哟~

感谢坚持关注的朋友~

一起来学大数据|Mybatis之如鱼得水的动态SQL,百样玲珑?

世界很大,幸好有你~

欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。

聚焦最新科技咨讯,探寻未来智能领域,我是Mario女陶。

猜你喜欢

转载自blog.csdn.net/qq_41147260/article/details/81282068