Oracle 仅从jdbcTemplate查询中获取一行以进行性能优化

Oracle 仅从jdbcTemplate查询中获取一行以进行性能优化,oracle,spring-boot,jdbc,java-8,jdbctemplate,Oracle,Spring Boot,Jdbc,Java 8,Jdbctemplate,我使用上面的代码片段从数据库中检索数据,并获得100多条记录。但对于所有记录,sim和imei号码都是相同的。其他领域则不同。当执行上述代码时,我可以从第一条记录本身获取sim和imei号码。但查询会在所有记录上运行,因此需要3秒钟以上才能完成。问题就在这里。 如何在从第一条记录获取sim和imei的值后停止检索其他记录。我不能将sql查询更改为文档,需要用java代码本身进行优化 我如何优化它以使其在100 mills以下执行。您有两种选择,要么使用SQL查询进行限制,要么使用JdbcTemp

我使用上面的代码片段从数据库中检索数据,并获得100多条记录。但对于所有记录,sim和imei号码都是相同的。其他领域则不同。当执行上述代码时,我可以从第一条记录本身获取sim和imei号码。但查询会在所有记录上运行,因此需要3秒钟以上才能完成。问题就在这里。 如何在从第一条记录获取sim和imei的值后停止检索其他记录。我不能将sql查询更改为文档,需要用java代码本身进行优化


我如何优化它以使其在100 mills以下执行。

您有两种选择,要么使用SQL查询进行限制,要么使用
JdbcTemplate\setMaxRows

SQL

您需要编辑查询,包括要选择的列和表名:

jdbcTemplate.query(getQuery(id),
        rs -> {
            if(rs.next()) {
                mainDTO.setSim(rs.getString("sim"));
                mainDTO.setImei(rs.getString("imei"));
            }
        });
JDBC

用于将
JdbcTemplate
配置为最多返回一行:

SELECT * FROM table LIMIT 1
我想这是模仿

jdbcTemplate.setMaxRows(1);