JDBCDataStore should use prepared statemetns for all database operations
------------------------------------------------------------------------
Key: GEOT-1961
URL: http://jira.codehaus.org/browse/GEOT-1961
Project: GeoTools
Issue Type: Improvement
Components: data h2
Affects Versions: 2.5-RC0
Reporter: Andrea Aime
Assignee: Justin Deoliveira
Fix For: 2.5.0, 2.6-M0
For both security and performance reasons all database operations should use
prepared statements.
This means all literals and feature values should be encoded as ?, put into a
data structure, and then set into the prepared statement. The filter encoder
should probably encode all literals and build a list of params that is then
returned along with the generated sql. The non trivial bit is making sure all ?
are in the same order as the parameters. One way to do so is to ensure the
filter encoder uses an inorder visit
(http://en.wikipedia.org/wiki/Tree_traversal), think for example between filter
encodings.
Dialect wise, I believe most values can be set using setObject, but depending
on the dialect some (especially geometries) might need to be set using special
constructs (think Oracle STRUTS, they are not used only for geometries),
meaning it's probably a good idea to let the dialect do the value setting
(something like setValue(PreparedStatement ps, Object value, Class binding)
should work).
Once this is done, we can get an extra speed boost by cachign prepared
statemetns (this can be done with a flag at the connection pool level) and by
using batches of prepared statements for inserts/updates (this can be done
later of course).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel