Mybatis动态SQL的示例代码

网友投稿 669 2022-11-28

Mybatis动态SQL的示例代码

Mybatis动态SQL的示例代码

目录基本流程IF,WhereSetChoose(when,otherwise)SQL片段总结

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

基本流程

1,数据库准备一张表

2,导包

3,编写核心配置文件

4,编写实体类

5,编写实体类对应的Mapper和Mapperhttp://.xml文件

6,在核心配置文件中注册Mapper.xml

7,测试

开启自动驼峰命名规则映射

即在数据库中为create_time对应java实体类属性createTime

IF,Where

select * from blog

title = #{title}

and author = #{author}

UGGZP

Where的作用:当至少有一个满足条件时添加Where,且会判断后面加的第一条语句,若是and开头,则会自动将这个and删除

本质上还是在拼接SQL,上述当没有满足条件时查询blog表中的所有,当满足条件时,则拼接SQL

Set

update blog

title = #{title},

author = #{author}

where id = #{id}

Set的作用:至少有一个满足条件时添加Set,且会判断后面加的最后的语句,若是",“结尾,则会自动将这个”,"删除

Choose(when,otherwise)

select * from blog

title = #{title}

and author = #{author}

and `view` = #{view}

choose(when,otherwise)类似与Java中的switch(case,default),choose进入选择,when当什么什么时,进行条件判断,若满足条件,则执行条件中的内容,后面的when,otherwise将不再执行,otherwise当所有when都不满足条件时执行

ForEach

select * from blog

id = #{id}

上述为,一个集合ids存储id的内容,根据这个集合查询所包含的id,open为开始,close为结束,separator为分隔符

才用map.put(“ids”,list)的方式导入集合

建议:现在mysql中写出完整的sql,再对应的去修改即可

SQL片段

将一些功能的部分抽取出来方便复用

使用SQL标签抽取公共的部分

title = #{title}

and author = #{author}

在需要的地方使用include标签引用即可

select * from blog

注意事项:

1.最好基于单表来定义SQL片段

2.不要存在where标签

总结

所谓的动态SQL就是在拼接SQL语句,我们只要保证SQL的正确性,按照SQL的格式去排列组合就可以了

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:react + zarm + antV F2 实现账单数据统计饼图效果
下一篇:MAC下虚拟机Ubuntu下ParallelsTools安装失败的解决方法_我是亲民_新浪博客
相关文章

 发表评论

暂时没有评论,来抢沙发吧~