大家好我是IT修真院一枚纯洁的程序员,今天给大家分享一下动态SQL
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
1.背景介绍
先介绍下背景
MyBatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。与实体类对应的XML配置文件是mybatis的核心,其中包含了很多常用的标签
2.知识剖析
动态SQL:按照不同的条件对SQL语句进行拼接,从而实现SQL语句的变化。与静态SQL相比,动态SQL的优势是可以根据实际输入的参数自动调整SQL语句,从而减少程序猿的工作量。举个例子:学生信息有【学号】,【姓名】,【性别】,【班级】等信息,当我们需要更新一个学生的班级信息时,如果使用静态SQL语句,我们需要提供这个学生的所有信息,才能够修改他的【班级】信息,如果使用动态SQL语句,我们只需要提供他的主键【学号】和新的【班级】信息,就可以了。
2.知识剖析
常用标签:if、where、set;foreach;bind
当有很多条if语句时,如果只有几条成立,那么拼装而成的sql语句将会出现语法问题,比如“,”逗号会多出来,sql中的where会出现在sql语句的末尾。where标签会自动添加一个WHERE,如果if语句中有AND,还会将AND删掉。
3.常见问题
1.字符串的拼接
2.构造查询条件QueryVo
4.解决方案
5.编码实战
6.扩展
7.参考文献
http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html https://www.cnblogs.com/dongying/p/4092662.html官方文档
等