You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Dennis Lundberg (JIRA)" <ji...@apache.org> on 2008/03/16 22:35:24 UTC
[jira] Updated: (DBUTILS-31) fillStatement setNull bug with the
Derby JDBC driver
[ https://issues.apache.org/jira/browse/DBUTILS-31?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dennis Lundberg updated DBUTILS-31:
-----------------------------------
Description:
This has been documented many times before, but I was not happy with the existing code fixes. The following small code snippet should fix it for all conforming JDBC drivers.
{code}
protected void fillStatement(PreparedStatement stmt, Object[] params)
throws SQLException {
if (params == null) {
return;
}
ParameterMetaData pmd = stmt.getParameterMetaData();
for (int i = 0; i < params.length; i++) {
if (params[i] != null) {
stmt.setObject(i + 1, params[i]);
} else {
stmt.setNull(i + 1, pmd.getParameterType(i + 1));
}
}
}
{code}
The only difference is that you get the parameter meta data and pass that type information to the setNull method. This should neatly fix this problem, with a very slight additional overhead.
was:
This has been documented many times before, but I was not happy with the existing code fixes. The following small code snippet should fix it for all conforming JDBC drivers.
protected void fillStatement(PreparedStatement stmt, Object[] params)
throws SQLException {
if (params == null) {
return;
}
ParameterMetaData pmd = stmt.getParameterMetaData();
for (int i = 0; i < params.length; i++) {
if (params[i] != null) {
stmt.setObject(i + 1, params[i]);
} else {
stmt.setNull(i + 1, pmd.getParameterType(i + 1));
}
}
}
The only difference is that you get the parameter meta data and pass that type information to the setNull method. This should neatly fix this problem, with a very slight additional overhead.
> fillStatement setNull bug with the Derby JDBC driver
> ----------------------------------------------------
>
> Key: DBUTILS-31
> URL: https://issues.apache.org/jira/browse/DBUTILS-31
> Project: Commons DbUtils
> Issue Type: Improvement
> Affects Versions: 1.0
> Environment: Derby 10.1.2.1
> Reporter: Francis Townsend
>
> This has been documented many times before, but I was not happy with the existing code fixes. The following small code snippet should fix it for all conforming JDBC drivers.
> {code}
> protected void fillStatement(PreparedStatement stmt, Object[] params)
> throws SQLException {
> if (params == null) {
> return;
> }
> ParameterMetaData pmd = stmt.getParameterMetaData();
> for (int i = 0; i < params.length; i++) {
> if (params[i] != null) {
> stmt.setObject(i + 1, params[i]);
> } else {
> stmt.setNull(i + 1, pmd.getParameterType(i + 1));
> }
> }
> }
> {code}
> The only difference is that you get the parameter meta data and pass that type information to the setNull method. This should neatly fix this problem, with a very slight additional overhead.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.