189 8069 5689

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

好程序员 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.    

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

1.    

2.    id = "selectUsersChoose"   parameterType = "user"   resultType = "user" >   

4.      select * from users   

5.         

6.                 

7.                     test = "uid!=null" >   uid =#{uid}   

8.                     test = "uname!=null and uname!=''" >  uname like "%"#{uname}"%"   

9.                   uid = 1   

10.                

11.                  

12.         

13. 

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

1.    id = "updateSet"   parameterType = "user" >   

2.      

3.      update users    

4.        

5.       

6.         test = "uname!=null and uname!=''" >   uname  =#{uname},   

7.         test = "upwd!=null and upwd!=''" >   upwd  =#{upwd},   

8.         test = "sex!=null and sex!=''" >   sex  =#{sex},   

9.         test = "birthday!=null" >   birthday  =#{birthday},   

10.       

11.      where   uid =#{uid}  

12.       

Trim , trim 代替 where

1.    

2.         id = "selectUsersForeachArray"    resultType = "user" >   

3.      select * from users  where uid  in    

4.