[ 
https://issues.apache.org/jira/browse/DERBY-3676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12598205#action_12598205
 ] 

mike bell commented on DERBY-3676:
----------------------------------

Boy, I'm a java newbie, but I was inspired to look at the code after Rick's 
encouraging comments on the list. . It looks easy to do, but the BUILDING 
looks......painful, judging from BUILDING.txt

Comment 1. Isn't it bad practice in general to do what Daniel says the code is 
doing, eg rely on toString() for ANY formal meaning? I don't mean this as 
criticism, just curious.

Comment 2. If toString is being used anyway, why not just use toHumanString()

Comment 3. Ok, I dare expose myself to be made fun of :). The following seemed 
to work fine with my primitive tests

         public String toHumanString() {  
  // I guess this is how you are making it threadsafe? Otherwise I am vague on 
this and in fact the publicness of the Object[] _parameters to begin with! Boy 
all those publics make my recently weened JCIP head feel scared. I want my mama.
               synchronized(connection) {
                       if ((parameters_.length>0)) {
                           StringBuffer sb = new StringBuffer(sql_);
                           sb.append("\r\n ");
                                for (int i=0;i<parameters_.length;i++) {
                                        if (i>0) sb.append(", ");
                                        sb.append("[");
                                        sb.append((i+1)+"]=");
                                        sb.append(parameters_[i]==null ? 
"uninitialized" : parameters_[i].toString());
                                } 
                                
                                return sb.toString();
                       } else {
                           return sql_;
                       }
                       
               }
         }

> Make the toString() method of Derby PreparedStatements print out SQL text 
> with ? parameters replaced by the values that have been set so far
> --------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3676
>                 URL: https://issues.apache.org/jira/browse/DERBY-3676
>             Project: Derby
>          Issue Type: New Feature
>          Components: JDBC, Newcomer
>            Reporter: Rick Hillegas
>
> This topic came up in the following email thread on the user list: 
> http://www.nabble.com/PreparedStatement.toString%28%29---nice-formatting-td17250811.html#a17250811
>  Here's what the thread requests: 
> "In mysql, a toString() on a PreparedStatement will do this, eg "select x
> from foo where x.a = ?" will become "select x from foo where x.a = 1" with
> the appropriate setValue() call."
> At first blush, this seems like it might be a simple project for a newcomer.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to