动态sql与mybatis标签

 大家好我是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官方文档


   

8.更多讨论

1.mapper 和 DAO 的区别
一个是自定义的接口,一个是代理的接口。
2.模糊查询的几种方式
直接使用 % 拼接字符串,如 '%'#{name}'%' 或 "%"#{name}"%",单引号或双引号都可以。
使用concat(str1,str2)函数拼接
使用mybatis的bind标签

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,838评论 0 4
  • 1 引言# 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybait...
    七寸知架构阅读 76,699评论 36 979
  • 有时候真的想找个女孩子,好好爱下去,好好谈一场恋爱。却从来没有做出过行动。因为,没有被爱灌满的感觉,时刻都为自己保...
    飞奔的切菜刀阅读 356评论 0 0
  • “一念起,天涯咫尺; 一念灭,咫尺天涯。 时间很短,天涯很远, 一山一水,一朝一夕, 自己安静地走完。 倘若不慎走...
    寒江雪810阅读 851评论 0 0
  • 有句经典的话叫:爱一个人,陪伴,是最长情的告白。但我想说,有品质的陪伴,才是真正的爱,才是真正有价值的。这就像有效...
    营养私教西西阅读 265评论 0 0