点击上方“JAVAandPython君”,选择“星标”公众号
重磅干货,第一时间送达原创| kuls
首发: JAVAandPython君
目录
1.Mybatis第一篇|我的第一个Mybatis程序
2.Mybatis第二篇| CRUD,这才是程序员入门第一课
3.Mybatis第三篇| Mybatis配置,有点小个性!
4.Mybatis第四篇| 类处理器什么玩意?举个栗子你就知道了
前言
今天我们来学习一下动态sql,看起来很NB的感觉。我们来看看官网是怎么来介绍动态sql的。动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。
简而言之,就是可以根据不同的条件自动给我们生产sql语句。废话不多说,我们看看到底是怎么操作的。
动态sql
虽然官方文档说这个特性很牛逼,但是还有一句话我们没看到:
使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。
也就是说我们还是需要去学习动态sql语句的语法。
- if
- choose (when, otherwise)
- trim (where, set)
- foreach
动态语句其实也就上面的四个标签语句,用过xml的或者JSTL等文本处理语言的同学可能很快就能理解。
我们这次来重新创建一个SQL表,来进行我们这次的演示,建表语句放在下面:
CREATE TABLE `bolg`(
`id` VARCHAR(50) NOT NULL COMMENT '博客id',
`title` VARCHAR(100) not null comment '博客标题',
`author` VARCHAR(30) not null comment '博客作者',
`create_time` datetime not null comment '创建时间',
`views` int(30) not null comment '浏览量'
)ENGINE=InnoDB DEFAULT CHARSET=utf8
大家可