好程序员 Java 分享 Mybatis 必会的动态 SQL , 前言 :
成都创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为固镇企业提供专业的成都网站设计、做网站,固镇网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
Mybatis 可谓是 java 开发者必须会的一项技能。 MyBatis 的强大特性之一便是它的动态 SQL 。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。
M ybatis 动态 sql
mybatis 动态SQL,通过 if, choose, when, otherwise, trim, where, set, foreach等标签,可组合成非常灵活的SQL语句,从而在提高 SQL 语句的准确性的同时,也大大提高了开发人员的效率。本文主要介绍这几个动态SQL .
具体示例
if标签 if就是用来对输入映射的字段进行判断 一般是非空判断 null 和""。
1.
2.
3. select * from users where 1 =1
4.
5.
6.
动态
SQL
1.
2.
3. select * from users
4.
5.
6.
7.
choose — when--when--otherwise when 可以多个 otherwise 只能有一个 类似于 switch case 。
需求:输入用户 id 按照用户 id 进行精确查找 其他条件不看 没有输入 id 用户名模糊查找 都没有的话 查询 id=1 的用户
1.
2.
3.
4. select * from users
5.
6.
7.
8.
9.
10.
11.
12.
13.
动态 sql 之 set 代替 set 关键字 set 标签可以帮助我们去掉最后一个逗号
1.
2.
3. update users
4.
5.
6.
7.
8.
9.
10.
11. where uid =#{uid}
12.
Trim , trim 代替 where
1.
2.
3. select * from users
4.
2.
3.
4. update users
5.
6.
7.
8.
9.
10.
11.
12.
F oreach 来遍历集合
1.
2.
3. select * from users where uid in
4.