Spring Batch之读数据库—JdbcPagingItemReader(四十一)

这篇具有很好参考价值的文章主要介绍了Spring Batch之读数据库—JdbcPagingItemReader(四十一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、JdbcPagingItemReader

        Spring Batch框架提供了对JDBC分页读取支持的组件JdbcPagingItemReader。JdbcPaginItemReader实现ItemReader接口,核心作用是将数据库中记录通过分页的方式转换为Java对象。在JdbcPagingItemReader将数据库记录转换为Java对象是主要有两步工作:首先根据SimpleJdbcTemplate与PagingQueryProvider从数据库中根据分页的大小获取结果集ResultSet;其次使用RowMapper将结果集ResultSet转换为Java对象,具体步骤见下:

Spring Batch之读数据库—JdbcPagingItemReader(四十一),Spring Batch,spring,batch

JdbcPagingItemReader关键接口、类说明:

关键类 说明
DataSource 提供读取数据库的数据源信息
SimpleJdbcTemplate 提供标准的Spring的jdbc模板,根据分页信息查询数据库,返回排序后的结果集ResultSet
PagingQueryProvider 根据分页信息生成每次需要查询的SQL语句
RowMapper 负责将结果集ResultSet转换为Java对象

JdbcPagingItemReader关键属性:

属性 类型 说明
dataSource DataSource 数据源,通过该属性指定使用的数据库信息
fetchSize int

设置ResultSet每次向数据库取的行数;setFetchSize的意思是当调用rs.next时,ResultSet会一次性从服务器上取多少行数据回来,这样在下次rs.next时,可以直接从内存中取出数据而不需要网络交互,提高了效率。

默认值:-1

queryProvider PagingQueryProvider 分页查询SQL语句生成器,负责根据分页信息生成每次需要执行的SQL语句
parameterValues Map<String,Object> 设置定义的SQL语句中的参数
rowMapper RowMapper 将结果集ResultSet转换为指定的Pojo对象类;需要实现RowMapper接口,默认可以使用BeanPropertyRowMapper;
pageSize int

分页大小

默认值:10

        Spring Batch框架为了支持PagingQueryProvider,根据不同的数据库类型提供多种实现,为了便于开发者屏蔽不同的数据库类型,Spring Batch框架提供了友好的工厂类SqlPagingQueryProviderFactoryBean为不同的数据库类提供PagingQueryProvider的实现类。

SqlPagingQueryProviderFactoryBean关键属性:

属性 类型 说明
dataSource DataSource 数据源,通过该属性指定使用的数据库信息
databaseType String 指定数据库的类型,如果不显示指定该类型,则自动通过dataSource属性获取数据库的信息
ascending Boolean

查询语句是否是升序。

默认值:true

fromClause String 定义查询语句的from部分
selectClause String 定义查询语句的select部分
sortKey String 定义查询语句排序的关键字段
whereClause String 定义查询语句的where字段

         使用JdbcPagingItemReader至少需要配置dataSource、queryProvider、rowMapper三个属性。

二、项目举例

1.项目框架

Spring Batch之读数据库—JdbcPagingItemReader(四十一),Spring Batch,spring,batch

2.代码实现

D:\ideaWorkplace(旧)\spring-batch\src\main\java\com\xj\demo32\BatchMain.java:

D:\ideaWorkplace(旧)\spring-batch\src\main\java\com\xj\demo32\CreditBill.java:

D:\ideaWorkplace(旧)\spring-batch\src\main\java\com\xj\demo32\CreditBillProcessor.java:

D:\ideaWorkplace(旧)\spring-batch\src\main\java\com\xj\demo32\CreditBillRowMapper.java:

D:\ideaWorkplace(旧)\spring-batch\src\main\java\com\xj\demo32\DummyCreditItemWriter.java:

D:\ideaWorkplace(旧)\spring-batch\src\main\resources\demo32\job\demo32-job.xml:

D:\ideaWorkplace(旧)\spring-batch\src\main\resources\demo32\job\demo32-jobContext.xml:

D:\ideaWorkplace(旧)\spring-batch\src\main\resources\demo32\db\create-tables-mysql.sql:

D:\ideaWorkplace(旧)\spring-batch\src\main\resources\properties\batch-mysql.properties:

3.运行结果

Spring Batch之读数据库—JdbcPagingItemReader(四十一),Spring Batch,spring,batch

 文章来源地址https://www.toymoban.com/news/detail-602559.html

到了这里,关于Spring Batch之读数据库—JdbcPagingItemReader(四十一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring配置动态数据库

    前言 本文主要介绍使用spring boot 配置多个数据库,即动态数据库 开始搭建 首先创建一个SpringWeb项目——dynamicdb(spring-boot2.5.7) 然后引入相关依赖lombok、swagger2、mybatis-plus,如下: 然后在包dynamicdb下面创建controller、mapper、dbmodel, 然后在resource下面创建mapper文件夹及问题,如

    2024年02月08日
    浏览(44)
  • Spring Security-查询数据库认证

    整合mybatis-plus 完成数据库操作 1.引入相关依赖 再父工程中 增加 mybatis-plus lombok mysql 相关依赖及版本号 再子项目中 引入  2.创建表 user_info 3.创建实体类 4.整合mybatis-plus ,创建接口 继承 BaseMapper 5.创建service 即UserDetailsService 接口实现类 6. 再启动类增加 mapperscan 或 再 4的接口增

    2024年01月18日
    浏览(91)
  • Spring Boot:数据库的整合

    在 Spring Boot :Web开发之视图模板技术的整合 文章中,介绍了 Spring Boot 整合视图模板技术。然而,仅仅整合视图模板技术可能还不能满足所有业务需求,因此还需要进一步扩展 Spring MVC 的默认配置。 简单补充说明 : 扩展 Spring Boot 中的 Spring MVC 默认配置通常涉及实现 WebMvcC

    2024年04月13日
    浏览(55)
  • Spring Boot应用中如何动态指定数据库,实现不同用户不同数据库的场景

    当在 Spring Boot 应用程序中使用Spring Data JPA 进行数据库操作时,配置Schema名称是一种常见的做法。然而,在某些情况下,模式名称需要是动态的,可能会在应用程序运行时发生变化。比如:需要做数据隔离的SaaS应用。 所以,这篇博文将帮助您解决了在 Spring Boot 应用程序中如

    2024年04月26日
    浏览(47)
  • 使用Spring Cache优化数据库访问

    在这篇博客中,我们将学习如何使用Spring Cache来优化数据库访问,提高系统性能。我们将创建一个简单的图书管理应用作为示例,并演示如何通过缓存减少对数据库的频繁查询。 首先,我们看一下项目的基本结构: 我们使用了Spring Boot和Spring Data JPA来简化项目配置。以下是主

    2024年02月02日
    浏览(39)
  • Spring 工程数据库密码用户配置问题

    在 Spring 工程中,连接 MySQL 数据库的用户名和密码通常保存在配置文件中(比如 application.properties 或者 application.yml),而在跑测试用例时,这些配置信息往往需要与生产环境隔离开来。 可以使用 Spring 的配置文件来解决这个问题,具体方法如下: 在主配置文件中只写明用户

    2024年02月09日
    浏览(42)
  • Spring Boot对接Oracle数据库

    最近学习了Oracle数据库,那么如何使用Spring Boot和MyBatis Plus对接Oracle数据库呢? 这就有了这篇随记,具体流程如下 创建一个空的Maven工程,导入如下依赖: tips:这里碰到一个坑,我本机适用的Oracle数据库版本是11g XE,所以要使用的驱动为ojdbc5/ojdbc6,不然连接老会失败。 在配

    2024年02月09日
    浏览(45)
  • idea利用spring框架整合thymeleaf展现数据库数据

    idea初步利用thymeleaf展现列表 上一篇文章简单展现自己写的列表; 这篇文章连接mysql数据库实现数据库数据展现 主要三个文件 controller指定html界面 mapper写数据库sql查询语句 pojo中的user写具体数据库中的表包含哪些字段(这部分最好的方式写出变量名字然后alt+insert自动生成g

    2024年02月05日
    浏览(59)
  • 【Spring Boot】Spring Boot 配置 Hikari 数据库连接池

    数据库连接池是一个提高程序与数据库的连接的优化,连接池它主要作用是提高性能、节省资源、控制连接数、连接管理等操作; 程序中的线程池与之同理,都是为了优化、提高性能。

    2024年02月11日
    浏览(51)
  • Spring Boot项目实现无数据库启动

    今天需要创建一个不连接数据库的Spring Boot工程, 结果一切配置好后项目却启动失败, 提示如下: 查询了一下资料, 发现原来Spring Boot启动时是默认是要连接数据库的, 这样一来只需要把数据库的一些配置排除掉就可以了: 重新启动, 项目成功运行了。另外, pom.xml文件中也不要引入

    2024年02月15日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包