德语网站建设注意事项,做网站申请哪类商标,网站不交换友情链接可以吗,做简单网站用什么软件有哪些内容目录
#x1f392;1 if 标签 #x1fad6;2 trim 标签 #x1f460;3 where 标签 #x1f9ba;4 set 标签 #x1f3a8;5 foreach 标签 动态 sql 是Mybatis的强⼤特性之⼀#xff0c;能够完成不同条件下不同的 sql 拼接。
在 xml 里面写判断条件。
动态SQL 在数据库里…目录
1 if 标签 2 trim 标签 3 where 标签 4 set 标签 5 foreach 标签 动态 sql 是Mybatis的强⼤特性之⼀能够完成不同条件下不同的 sql 拼接。
在 xml 里面写判断条件。
动态SQL 在数据库里的体现就是phtot 这个字段在数据输入的时候在没有默认值情况下可以为空。 在 SQL 中空和 NULL 是两个不同的概念。空什么也没有显示而 NULL 显示了 NULL。 1 if 标签 /*** 动态 sql* if 标签* param userInfo* return*/int add2(UserInfo userInfo); insert idadd2insert into userinfo(username,passwordif testphoto ! null,photo/if)values(#{username},#{password}if testphoto ! null,#{photo}/if)/insert Testvoid add2() {UserInfo userInfo new UserInfo();userInfo.setUsername(猪八戒);userInfo.setPassword(569875);userInfo.setPhoto(lion.png);int result userMapper.add2(userInfo);System.out.println(result);} Testvoid add2() {UserInfo userInfo new UserInfo();userInfo.setUsername(如来佛祖);userInfo.setPassword(99999);int result userMapper.add2(userInfo);System.out.println(result);} 2 trim 标签
多个字段可以为空的情况下只要有一个字段不为空就需要用到添加操作。动态拼接。 /*** trim 标签* param userInfo* return*/int add3(UserInfo userInfo); insert idadd3insert into userinfotrim prefix( suffix) suffixOverrides,if testusername!nullusername,/ifif testpassword!nullpassword,/ifif testphoto!nullphoto/if/trimvaluestrim prefix( suffix) suffixOverrides,if testusername!null#{username},/ifif testpassword!null#{password},/ifif testphoto!null#{photo}/if/trim/insert Testvoid add3() {UserInfo userInfo new UserInfo();userInfo.setUsername(观音菩萨);userInfo.setPassword(3785);int result userMapper.add3(userInfo);System.out.println(result);} Testvoid add3() {UserInfo userInfo new UserInfo();userInfo.setUsername(卓耿);userInfo.setPassword(sfgoz);userInfo.setPhoto(dragon.jpn);int result userMapper.add3(userInfo);System.out.println(result);} 3 where 标签
根据传入参数来决定 SQL 语句是否有 where 关键字。动态生成 where 语句。
对于 int 类型不传的话默认为 0 而不是 null。
where 标签除了动态生成 where 语句外还可以自动的去掉语句前面的 and。所以 and 只能放在语句的前面放在最后面会报错 /*** where 标签* param userInfo* return*/ListUserInfo getListByWhere(UserInfo userInfo); select idgetListByWhere resultTypecom.example.demo.Model.UserInfoselect * from userinfowhereif testid0id#{id}/ifif testusername!nulland username#{username}/ifif testpassword!nulland password#{password}/ifif testphoto!nulland photo#{photo}/if/where/select Testvoid getListByWhere() {UserInfo userInfo new UserInfo();userInfo.setId(1);ListUserInfo list userMapper.getListByWhere(userInfo);System.out.println(list);} Testvoid getListByWhere() {UserInfo userInfo new UserInfo();userInfo.setUsername(白骨精);ListUserInfo list userMapper.getListByWhere(userInfo);System.out.println(list);} 也可以使用 trim 标签完成上述 where 标签的功能代码如下: select idgetListByWhere resultTypecom.example.demo.Model.UserInfoselect * from userinfotrim prefixwhere prefixOverridespreif testid0id#{id}/ifif testusername!nulland username#{username}/ifif testpassword!nulland password#{password}/ifif testphoto!nulland photo#{photo}/if/trim/select
4 set 标签
用于修改。 /*** set 标签* param userInfo* return*/int update2(UserInfo userInfo); update idupdate2update userinfosetif testusername!nullusername#{username},/ifif testpassword!nullpassword#{password},/ifif testphoto!nullphoto#{photo}/if/setwhere id#{id}/update Testvoid update2() {UserInfo userInfo new UserInfo();userInfo.setUsername(小玫瑰);userInfo.setId(6);userInfo.setPassword(palsov);userInfo.setPhoto(rose.jpg);int result userMapper.update2(userInfo);System.out.println(result);} Testvoid update2() {UserInfo userInfo new UserInfo();userInfo.setUsername(卡莉熙);userInfo.setId(4);userInfo.setPassword(msjf);int result userMapper.update2(userInfo);System.out.println(result);} 可以看出set 标签会自动去除末尾的逗号
5 foreach 标签
多条 sql 数据删除的时候。批量删除。 /*** foreach 标签* param ids* return*/int delByIds(ListInteger ids); delete iddelByIdsdelete from userinfowhere id inforeach collectionids open( close) itemid separator,#{id}/foreach/delete Testvoid delByIds() {ListInteger list new ArrayListInteger(){{add(1);add(2);add(3);}};int ret userMapper.delByIds(list);System.out.println(ret);}