Yeah, it's definitely handy for that.
Brandon

On Fri, May 15, 2009 at 4:08 PM, Alin Popa <alin.p...@gmail.com> wrote:

> Thanks Brandon,
>
> I didn't know if I need to pass the literal in a special way, but it
> seems that is pretty straight forward.
> Regarding public access to that literal, of course, it's a private
> place where this will be done.
> My need for that string substitution is to add dynamic pieces of SQL
> into already existing ones.
>
> On Sat, May 16, 2009 at 12:02 AM, Brandon Goodin
> <brandon.goo...@gmail.com> wrote:
> > There isn't much to say. $blah$ is a literal whereas #blah# will convert
> to
> > a ? for the prepared statement.
> >
> > say you have a property of id on Person and set its value to 1
> >
> > public class Person {
> >   private Integer id;
> >   //getter/setter
> > }
> >
> > If you use the following syntax in your mapped statement:
> > select name from person where id = #id#
> >
> > ibatis will convert the #id# to a ? for use in the prepared statement:
> > select name from person where id = ?
> >
> > if on the other hand you used the $id$ ibatis would pass the following to
> > the prepared statement
> > select name from person where id = 1
> >
> > The obvious caution here is that the $literal$ syntax should never be
> > utilized in a place that the public can alter it. You open yourself to
> SQL
> > injection risks. In other words don't take a value that is passed in from
> a
> > web page and assign it in your SQL as s literal.
> >
> > Brandon
> >
> >
> > On Fri, May 15, 2009 at 3:52 PM, Alin Popa <alin.p...@gmail.com> wrote:
> >>
> >> Hi,
> >>
> >> There is a place where I can find some documentation/examples/links
> >> related to string substitution in ibatis ? ($substitution$ thingy
> >> ....)
> >> In the official pdf documentation I didn't find anything about it;
> >> also google didn't helped much.
> >>
> >> Thanks,
> >> Alin
> >
> >
>
>
>
> --
> Best Regards,
>
> Alin
>

Reply via email to