1. if 标签示例:
在Mapper层接口定义方法
编写方法
将方法复制到Service接口类
实现方法
最后就可以进行测试了
2. trim 标签示例:
trim标签:
mybatis中trim是动态拼接;
java中表示去除前后空格;
trim标签中的属性:
prefix:前缀
suffix:后缀
suffixOverride:去除后缀指定的字符
prefixOverrides:去除前缀指定的字符
3. foreach 标签示例:
实体类中添加一个属性
在Mapper层接口定义方法
实现ForEach方法:(此处介绍三种方法)
方法一:
方法二:
方法三:
将方法复制到Service接口类
实现方法:
方法测试及结果
sql语句:
4.传参:(此处介绍四种传参示例)
在Mapper层接口定义方法:
编写dao方法:
将方法复制到Service接口类
实现方法:
进行测试
5.模糊查询:
此处介绍三个方法
1、#{ }:相当于占位符,参数传递时,需要手动拼接百分号
2.${}:使用$传递参数时只会传递参数本身
3.concat:mysql的函数
关键:#{...}与${...}区别?
参数类型为字符串,#会在前后加单引号['],$则直接插入值
注:
1) mybatis中使用OGNL表达式传递参数
2) 优先使用#{...}
3) ${...}方式存在SQL注入风险
6.查询返回结果集:
resultMap:适合使用返回值是自定义实体类的情况
resultType:适合使用返回值的数据类型是非自定义的,即jdk的提供的类型
dao方法
测试方法
7.分页查询:
导入分页插件
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
将pagehelper插件配置到mybatis中
dao 方法:
以下提供了获取分页信息的二种方式
方式一:
Page<Book> page = (Page<Book>)list;
System.out.println("页码:" + page.getPageNum());
System.out.println("页大小:" + page.getPageSize());
System.out.println("总记录:" + page.getTotal());
方式二:
PageInfo pageInfo = new PageInfo(list);
System.out.println("页码:" + pageInfo.getPageNum());
System.out.println("页大小:" + pageInfo.getPageSize());
System.out.println("总记录:" + pageInfo.getTotal());
测试方法:
执行结果:
8.范围查询,转义字符处理:
注意:
>(>)
<(<)
&(&)
空格( )
例: