返回顶部
首页 > 资讯 > 精选 >扩展tk.mybatis的流式查询功能如何实现
  • 756
分享到

扩展tk.mybatis的流式查询功能如何实现

2023-06-21 22:06:43 756人浏览 安东尼
摘要

本篇内容主要讲解“扩展tk.mybatis的流式查询功能如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“扩展tk.mybatis的流式查询功能如何实现”吧!mybatis查询默认是一次获取

本篇内容主要讲解“扩展tk.mybatis的流式查询功能如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“扩展tk.mybatis的流式查询功能如何实现”吧!

mybatis查询默认是一次获取全部, 有时候需要查询上万上百万数据时,如果一次性读取到内存中,会容易导致OOM问题。这时候需要采用流式查询。以下扩展了tk.mybatis的流式查询功能。 

@Options注解是关键

import org.apache.ibatis.annotations.Options;import org.apache.ibatis.annotations.SelectProvider;import org.apache.ibatis.mapping.ResultSetType;import org.apache.ibatis.session.ResultHandler;@tk.mybatis.mapper.annotation.ReGISterMapperpublic interface SelectStreamByExampleMapper<T> {        @Options(resultSetType = ResultSetType.FORWARD_ONLY, fetchSize = 1000)    @SelectProvider(type = StreamExampleProvider.class, method = "dynamicsql")    void selectStreamByExampleMapper(Object example, ResultHandler resultHandler);}

带RowBounds的流式查询

import org.apache.ibatis.annotations.Options;import org.apache.ibatis.annotations.SelectProvider;import org.apache.ibatis.mapping.ResultSetType;import org.apache.ibatis.session.ResultHandler;import org.apache.ibatis.session.RowBounds;@tk.mybatis.mapper.annotation.RegisterMapperpublic interface SelectStreamByExampleRowBoundsMapper<T> {        @Options(resultSetType = ResultSetType.FORWARD_ONLY, fetchSize = 1000)    @SelectProvider(type = StreamExampleProvider.class, method = "dynamicSQL")    void selectStreamByExampleRowBoundsMapper(Object example, RowBounds rowBounds, ResultHandler resultHandler);}

流式ExampleProvider

import org.apache.ibatis.mapping.MappedStatement;import tk.mybatis.mapper.mapperhelper.MapperHelper;import tk.mybatis.mapper.provider.ExampleProvider;public class StreamExampleProvider extends ExampleProvider {    public StreamExampleProvider(Class<?> mapperClass, MapperHelper mapperHelper) {        super(mapperClass, mapperHelper);    }        public String selectStreamByExampleMapper(MappedStatement ms) {        return this.selectByExample(ms);    }        public String selectStreamByExampleRowBoundsMapper(MappedStatement ms) {        return this.selectByExample(ms);    }}

将SelectStreamByExampleMapper和SelectStreamByExampleRowBoundsMapper组合成一个接口

@tk.mybatis.mapper.annotation.RegisterMapperpublic interface StreamMapper<T> extends        SelectStreamByExampleMapper<T>,        SelectStreamByExampleRowBoundsMapper<T> {}

在BaseMapper中加入StreamMapper

public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T>, StreamMapper<T> {}

使用例子:

this.userMapper.selectStreamByExampleRowBoundsMapper(example, new RowBounds(0, 1), resultContext -> {     User user= (User) resultContext.getResultObject();     System.out.println(user); });this.userMapper.selectStreamByExampleMapper(example, resultContext -> {    User user= (User) resultContext.getResultObject();    System.out.println(User);});

到此,相信大家对“扩展tk.mybatis的流式查询功能如何实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 扩展tk.mybatis的流式查询功能如何实现

本文链接: https://lsjlt.com/news/301025.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 扩展tk.mybatis的流式查询功能如何实现
    本篇内容主要讲解“扩展tk.mybatis的流式查询功能如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“扩展tk.mybatis的流式查询功能如何实现”吧!mybatis查询默认是一次获取...
    99+
    2023-06-21
  • 扩展tk.mybatis的流式查询功能实现
    mybatis查询默认是一次获取全部, 有时候需要查询上万上百万数据时,如果一次性读取到内存中,会容易导致OOM问题。这时候需要采用流式查询。以下扩展了tk.mybatis的流式查询...
    99+
    2024-04-02
  • jQuery如何实现扩展功能
    这篇文章将为大家详细讲解有关jQuery如何实现扩展功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。扩展我们需要的功能$.extend({ min: func...
    99+
    2024-04-02
  • 如何实现amazeui验证按钮扩展功能
    这篇文章将为大家详细讲解有关如何实现amazeui验证按钮扩展功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。做一个发送验证码按钮,点击后要60秒之后才能再次点击,利用原有的amazeui样式做的一些扩...
    99+
    2023-06-09
  • Redis如何实现数据分片扩展功能
    Redis是一款被广泛应用的开源Key-Value数据库,以其高性能、低延迟、高并发等优点深受开发者的青睐。然而随着数据量的不断增加,单节点的Redis已经无法满足业务需求。为了解决这个问题,Redis引入了数据分片(Sharding)功能...
    99+
    2023-11-07
    Redis数据分片 数据分片扩展 Redis扩展性
  • CSS3如何实现特性查询功能
    这篇文章主要介绍了CSS3如何实现特性查询功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我们已经知道使用媒体查询(Media Query...
    99+
    2024-04-02
  • ajax如何实现分页查询功能
    小编给大家分享一下ajax如何实现分页查询功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ajax分页查询功能的具体代码,具体内容如下显示的效果如下:实现效果的...
    99+
    2023-06-08
  • Node.js如何实现添加查询功能
    这篇文章主要介绍“Node.js如何实现添加查询功能”,在日常操作中,相信很多人在Node.js如何实现添加查询功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node.js如何实现添加查询功能”的疑惑有所...
    99+
    2023-07-04
  • Java如何实现分页查询功能
    在Java中,可以使用分页查询功能来实现对数据库中的数据进行分页显示。下面是一个简单的示例代码:```java// 定义每页显示的记录数int pageSize = 10;// 定义当前页码int currentPage = 1;// ...
    99+
    2023-08-11
    Java
  • thinkphp5如何实现查询计数功能
    这篇“thinkphp5如何实现查询计数功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“thinkphp5如何实现查询计数...
    99+
    2023-07-05
  • 如何在Aurora中实现自动扩展存储功能
    在Aurora中实现自动扩展存储功能,可以通过以下步骤: 在AWS控制台中选择Aurora数据库实例,点击“实例操作”菜单下的“调...
    99+
    2024-04-09
    Amazon
  • kkpager如何实现ajax分页查询功能
    这篇文章主要介绍了kkpager如何实现ajax分页查询功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先看下前台代码:@{  Layout ...
    99+
    2023-06-08
  • java如何操作solr实现查询功能
    这篇文章主要介绍了java如何操作solr实现查询功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、封装的查询方法public static List...
    99+
    2023-05-30
    java solr
  • 实现mysql树查询的功能
    这篇文章给大家分享的是有关实现mysql树查询的功能的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。需求:查找当前(任意)级别下的所有子节点。通过自定义mysql函数实现,先贴代码...
    99+
    2024-04-02
  • MySQL 普通查询、流式查询、游标查询以及使用 mybatis 如何实现
    MySQL 普通查询、流式查询、游标查询以及使用 mybatis 如何实现 MySQL 普通查询、流式查询、游标查询以及使用 mybatis 如何实现普通查询流式查询游标查询mybatis 如...
    99+
    2023-09-28
    mybatis java mysql
  • 如何在Golang中实现查询省市的功能
    在Web开发中,查询省市是一个常见的需求,特别是在涉及到地理位置相关的业务场景中。而在Golang中,通过使用第三方库可以轻松实现查询省市功能。接下来,本文将为大家介绍如何在Golang中查询省市。一、使用第三方库进行查询在Golang中,...
    99+
    2023-05-14
  • SpringBoot实现快递物流查询功能(快递鸟)
    目录一、前言二、快递物流查询1、快递鸟工具类2、请求类3、响应结果类4、物流编码、状态枚举类5、测试api三、本文demo源码一、前言 本文将基于springboot2.4.0实现快...
    99+
    2024-04-02
  • PHP8如何通过Attributes扩展类的功能?
    PHP8如何通过Attributes扩展类的功能?在PHP8中,引入了一个新的功能-Attributes,也被称为是属性。它可以为类、类的属性、方法和函数等实体添加元数据,并且这些元数据可以在运行时被访问和使用。Attributes提供了一...
    99+
    2023-10-25
    PHP Attributes 扩展类
  • BootStrapz2select2如何实现查询以及输入功能
    小编给大家分享一下BootStrapz2select2如何实现查询以及输入功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先...
    99+
    2024-04-02
  • Django城市信息查询功能如何实现
    本文小编为大家详细介绍“Django城市信息查询功能如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Django城市信息查询功能如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言基于 Pythgo...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作