[
https://issues.apache.org/jira/browse/DERBY-3324?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12562014#action_12562014
]
Kristian Waagan commented on DERBY-3324:
----------------------------------------
Good feedback Knut Anders :)
Regarding the PreparedStatement vs CallableStatement issue, I think I'll
postpone it for now because I don't have much feeling for it.
Are there only advantages, or are there drawbacks as well?
I do feel that some flexibility is lost with your suggested approach for the
keys, but I will follow your advice because;
* affected classes are all internal and very contained, so it can be heavily
changed later without problems
* the extension room is rather small (the prepareStatement methods with int[]
and String[]).
* code readability does matter
* the KISS principle should be followed :)
I don't agree with the NPE vs IAE comment in this case, because I feel IAE
convey a little more information. However, there seems to be different opinions
about this. Some food for thought:
- IllegalArgumentException (JavaDoc): "Thrown to indicate that a method has
been passed an illegal or inappropriate argument."
- NullPointerException (JavaDoc): "Thrown when an application attempts to use
null in a case where an object is required. These include:
* Calling the instance method of a null object.
* Accessing or modifying the field of a null object.
* Taking the length of null as if it were an array.
* Accessing or modifying the slots of null as if it were an array.
* Throwing null as if it were a Throwable value.
Applications should throw instances of this class to indicate other illegal
uses of the null object."
- http://lists.ibiblio.org/pipermail/dev-dpml/2005q1/000658.html
Seems both can be used, and that there are alternative solutions. Is this
something we should discuss in the community to achieve consistency, or is it
just a less important matter of taste and style?
I will post a new patch when I have incorporated the changes.
Thanks
> JDBC statement cache implementation
> -----------------------------------
>
> Key: DERBY-3324
> URL: https://issues.apache.org/jira/browse/DERBY-3324
> Project: Derby
> Issue Type: Sub-task
> Components: Network Client
> Affects Versions: 10.4.0.0
> Reporter: Kristian Waagan
> Assignee: Kristian Waagan
> Priority: Minor
> Fix For: 10.4.0.0
>
> Attachments: derby-3324-1a-jdbc_statementcache.diff,
> derby-3324-1a-jdbc_statementcache.stat,
> derby-3324-1b-jdbc_statementcache.diff, derby-3324-1b-jdbc_statementcache.stat
>
>
> Implement a cache for storing JDBC prepared statement objects.
> The cache will be responsible for holding free prepared statement objects
> that can be reused, and also to throw away objects if the cache grows too big.
> All objects in the cache must belong to the same physical connection, but
> they can be reused across logical connections obtained from a single physical
> connection in a connection pool.
> This component is probably a candidate for code sharing between the client
> and the embedded driver. Sharing will not be part of this issue.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.