Mybatis之动态sql及分页

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.范围查询,转义字符处理:

注意:

    >(&gt;)   
    <(&lt;)  
    &(&amp;) 
 空格(&nbsp;)

例:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值