mybatis 多条件动态查询 if标签,bind标签,trim标签

 

1.UserMapper接口类

参数map :因为数据库字段只有一个birthday生日 而查询的是生日区间 有开始和结束两个值 所以使用map

 /**
     * 多条件动态查询
     * 1.用户的id
     * 2.用户的code模糊查询
     * 3.用户名称模糊查询
     * 4.用户的性别
     * 5.生日区间
     */
    List selectUserByDynamic(Map map);

2.UserMapper.XML文件

concat 拼接 %任意字符0个或多个

]]>  :>是特殊字符 转义

bind 标签 详见https://blog.csdn.net/zhq426/article/details/78750499 主要是解决数据库之间的差异性带来的问题

                 bind 标签的两个属性都是必选项, name 为绑定到上下文的变量名, value为 表达式

bind第一种写法  bind元素写在这里 优点:便于多处复用 缺点:条件为空时,会出现空指针异常 

        

bind第二种写法 放在if标签下不会有空指针异常 

trim标签详解:https://www.cnblogs.com/qiankun-site/p/5758924.html

                       prefix:前缀   prefixoverride:去掉第一个and或者是or

                      suffix:后缀            suffixoverride:去掉最后一个逗号(也可以是其他的标记,就像是上面前缀中的and一样)

 

        

3.测试 

@Test
	public void test2() {
		Map map = new HashMap();
//		map.put("id",2);
		map.put("usercode","a");
		map.put("gender",1);
		List users = userMapper.selectUserByDynamic(map);
		for(User user:users) {
			System.out.println(user);
		}

 

你可能感兴趣的:(java,框架之mybatis)