1
4
它不是在配置级别可用的东西。您可能需要再次检查它是否执行了您希望它执行的操作: see the javadoc for setMaxRows . 对于Oracle,它仍然会为查询返回每一行,然后只删除范围之外的行。您确实需要使用rownum使其与Oracle配合良好,但在配置中也无法做到这一点。 |
2
1
问题是为什么要限制返回的行数。这样做可能有很多原因。第一种方法是限制数据库返回的数据。在我看来,这在大多数情况下没有任何意义,因为如果我只想获得某些数据,那么我将使用不同的语句或添加过滤条件或其他内容。例如,如果您使用Oracle的rownum,您不知道哪些数据在您获得的行中,哪些数据不包括在内,因为您只是告诉数据库您想要从x行到y行。
|
3
1
如果您希望避免修改SQL查询,但仍然希望有干净的代码(这意味着您的代码保持可维护性),那么可以使用包装器设计解决方案。也就是说,通过使用一小组封装现有类的类,您可以无缝地为应用程序的其余部分实现所需的功能,这些应用程序仍然认为它在使用真实的数据源、连接和语句。
2-再编写一个包装器:ConnectionWrapper,它包装一个连接,该连接在createStatement()中返回StatementWrapper,在prepareStatement()中返回PreparedStatementWrapper。这些是以前以ConnectionWrapper的delegateConnection.createStatement()/prepareStatement()作为构造参数的编码类。 3-使用DataSourceWrapper重复该步骤。下面是一个简单的代码示例。
编写所有这些代码是快速且非常简单的,特别是如果您使用智能IDE(如Eclipse或IntelliJ),它将自动实现委派方法。 |
4
0
一种更动态的方法是开发一个过程并传入多行,然后让该过程将ref_游标返回给客户机。这样做的好处是避免了数据库上的硬解析,并提高了性能。 |
5
0
该场景限制了一个临时报告工具,以便最终用户不会撤回太多记录并生成无法使用的报告。
|
6
0
看看这个 page with a description 限制每次吸入Java应用程序的量。正如另一篇文章所指出的,DB仍然会提取所有的数据,这更多的是为了控制网络使用和Java端的内存。 |