如何用电脑做网站服务器吗,WordPress显示加载时间,北京seowyhseo,wordpress自动回复在实际开发中#xff0c;有时候查询条件可能是不确定的#xff0c;查询条件可能有多条也可能没有#xff0c;这时候就需要用到动态的sql语句拼接功能。 一、if、where、sql标签的使用 需求#xff1a;在一些高级查询中#xff0c;查询条件存在的个数不确定。如#xff0c…在实际开发中有时候查询条件可能是不确定的查询条件可能有多条也可能没有这时候就需要用到动态的sql语句拼接功能。 一、if、where、sql标签的使用 需求在一些高级查询中查询条件存在的个数不确定。如SELECT * FROM user WHERE username LIKE %明% AND sex 1; 为了能够动态拼接sql语句可以采用以下方式 UserMapper.xml select idfindUserByUserNameAndSex parameterTypecn.itheima.pojo.User resultTypecn.itheima.pojo.User\ SELECT * FROM user!-- where标签作用会自动向sql语句中添加where关键字会去掉第一个条件的and语句--whereif testusername ! null and username ! AND username LIKE %${username}%/ifif testsex ! null and sex ! AND sex#{sex}/if/where/select where标签下的查询条件放在findUserByUserNameAndSex中只能在该范围内使用。为了实现代码的重用性通常将查询条件放在外面由不同的查询共同调用。 sql iduser_wherewhereif testusername ! null and username ! AND username LIKE %${username}%/ifif testsex ! null and sex ! AND sex#{sex}/if/where/sqlselect idfindUserByUserNameAndSex parameterTypecn.itheima.pojo.User resultTypecn.itheima.pojo.UserSELECT * FROM user!-- 调用sql条件 --include refiduser_where/include/select UserMapper.java中编写接口 ListUser findUserByUserNameAndSex(User user); 测试 Testpublic void testFindUserByUserNameAndSex() throws Exception {SqlSession session sqlSessionFactory.openSession();UserMapper userMapper session.getMapper(UserMapper.class);User user new User();user.setUsername(明);user.setSex(1);ListUser userList userMapper.findUserByUserNameAndSex(user);System.out.println(userList);} 二、foreach标签的使用 需求SQL语句中SELECT * FROM user WHERE id IN (1,15,22,28);为了从service层接收多个id值然后使用foreach标签动态拼接多个id值组成完整的SQL语句。 UserMapper.xml select idfindUserByIds parameterTypecn.itheima.pojo.QueryVO resultTypecn.itheima.pojo.UserSELECT * FROM userwhereif testids ! null!--foreach循环传入的集合参数collection传入的集合的变量名称item每次循环将循环出的数据放入这个变量open循环开始拼接的字符串close循环结束拼接的字符串separator循环中拼接的分隔符--foreach collectionids itemid open id IN ( close) separator,#{id}/foreach/if/where/select QueryVO.java package cn.itheima.pojo;import java.util.List;public class QueryVO {private ListInteger ids;public ListInteger getIds() {return ids;}public void setIds(ListInteger ids) {this.ids ids;}
} 多个id值可以通过QueryVO类传递给DAO层。 UserMapper.java接口中编写接口 ListUser findUserByIds(QueryVO vo); 测试 Testpublic void testFindUserByIds() throws Exception {SqlSession session sqlSessionFactory.openSession();UserMapper userMapper session.getMapper(UserMapper.class);QueryVO vo new QueryVO();ListInteger ids new ArrayListInteger();ids.add(1);ids.add(15);ids.add(22);ids.add(28);vo.setIds(ids);ListUser userList userMapper.findUserByIds(vo);System.out.println(userList);} 转载于:https://www.cnblogs.com/binaway/p/9160258.html