
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
53 lines
1.3 KiB
Plaintext
53 lines
1.3 KiB
Plaintext
== Why is this an issue?
|
|
|
|
The implementation of certain ``++ResultSet++`` methods is optional for result sets of type ``++TYPE_FORWARD_ONLY++``. Even if your current JDBC driver does implement those methods, there's no guarantee you won't change drivers in the future.
|
|
|
|
|
|
This rule looks for invocations of the following methods on ``++TYPE_FORWARD_ONLY++`` ``++ResultSet++``s:
|
|
|
|
* ``++isBeforeFirst++``
|
|
* ``++isAfterLast++``
|
|
* ``++isFirst++``
|
|
* ``++getRow++``
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,java]
|
|
----
|
|
Statement stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY);
|
|
stmt.executeQuery("SELECT name, address FROM PERSON");
|
|
ResultSet rs = stmt.getResultSet();
|
|
|
|
if (rs.isBeforeFirst()) { // Noncompliant
|
|
|
|
}
|
|
----
|
|
|
|
== Resources
|
|
|
|
=== Related rules
|
|
|
|
* S2232 - "ResultSet.isLast()" should not be used
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Remove this call to "xxx".
|
|
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
=== on 5 Dec 2014, 07:51:51 Nicolas Peru wrote:
|
|
This one will require CFG to limit the number of false positive to add some constraints on the "stmt" variable to be able to determine which statement are indeed created with ``++ResultSet.TYPE_FORWARD_ONLY++``
|
|
|
|
endif::env-github,rspecator-view[]
|