sex 14 java_好程序员Java分享Mybatis必会的动态SQL

原标题:好程序员Java分享Mybatis必会的动态SQL

好程序员Java分享Mybatis必会的动态SQL,前言

Mybatis可谓是java开发者必须会的一项技能。MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。

Mybatis动态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. and uname like "%"#{uname}"%"

5. and sex = #{sex}

6.

动态SQL 相当于 where关键字 可以自动处理第一个前and 或者or。 当条件都没有的时候 where也不会加上 。

1.

2.

3. select * from users

4.

5. and uname like "%"#{uname}"%"

6. and sex = #{sex}

7.

choose—when--when--otherwise when可以多个 otherwise只能有一个 类似于 switch case。

需求:输入用户id 按照用户id进行精确查找 其他条件不看 没有输入 id 用户名模糊查找 都没有的话 查询id=1的用户

1.

2.

3.

4. select * from users

5.

6.

7. uid=#{uid}

8. uname like "%"#{uname}"%"

9. uid=1

10.

11.

12.

13.

动态sql之set 代替set关键字 set标签可以帮助我们去掉最后一个逗号

1.

2.

3. update users

4.

5.

6. uname =#{uname},

7. upwd =#{upwd},

8. sex =#{sex},

9. birthday =#{birthday},

10.

11. where uid=#{uid}

12.

Trim,trim代替where

1.

2.

3. select * from users

4.

10.

11. and uname like "%"#{uname}"%"

12. and sex = #{sex}

13.

14.

Trim代替set:

1.

2.

3.

4. update users

5.

6.

7. uname =#{uname},

8. upwd =#{upwd},

9. sex =#{sex},

10. birthday =#{birthday},

11.

12.

Foreach来遍历集合

1.

2.

3. select * from users where uid in

4.

12.

13. #{item}

14.

15.

16.

总结

熟练掌握以上Mysql的动态SQL,我们可以更得心应手的完成我的功能,写更少的代码,实现更多的功能。返回搜狐,查看更多

责任编辑:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值