You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Gil Vernik <Gi...@solaredge.com> on 2008/12/24 10:48:59 UTC

insert statement

Hi there,

I would like to write a dynamic insert statement, but both fields and
values are dynamic.

I mean 

<insert id="someIDhere" parameterClass="java.util.HashMap">

        insert into table_one (

            !!! dynamic list of keys from the HashMap

        ) values (

            !!! values

        );

</insert>

 

I want both the list of column names and it's values to be filled
automatically, depends on the parameterClass. How can I do it? I don't
care to use something else, instead of java.util.Hashmap.

 

Thanks,

Gil.

 


This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission. If verification is required please request a hard-copy version.

Re: R: insert statement

Posted by joson yu <yu...@gmail.com>.
hi,all.in this state.
insert into some_table (
 id,
 state,
 date
) values (
 #id:NUMERIC#,
 #state:VARCHAR#,
 #date:DATE#
)
 #state:VARCHAR#,in the configure file,we can set the column's type.but is
there anyway to set it's length. if we can do that the check work will be
more easy

Re: R: insert statement

Posted by Nathan Maves <na...@gmail.com>.
I am not sure why people continue to do this....

why not

insert into some_table (
  id,
  state,
  date
) values (
  #id:NUMERIC#,
  #state:VARCHAR#,
  #date:DATE#
)

This way it will insert the right data every time.  If the value is
null you get a null in the DB.  I think you are only going to cause
yourself extra pain in the long run with long complicated dynamic
sqlmaps.

Nathan

On Wed, Dec 24, 2008 at 3:28 AM, De Gaetano Giuseppe
<de...@pitagora.it> wrote:
> Hi all,
>
> I faced with the same problem and I solved in this way:
>
> <insert id="insert_dynamic" parameterClass="Input">
>
>                         INSERT INTO some_table
>
>                         <dynamic prepend=" (">
>
>                                    <isNotNull prepend="," property="id ">
>
>                                                            ID
>
>                                    </isNotNull>
>
>                                    <isNotNull prepend="," property="state">
>
>                                                            STATE
>
>                                    </isNotNull>
>
>                                    <isNotNull prepend="," property="date">
>
>
> DATE
>
>                                    </isNotNull>
>
>                                    )
>
>                         </dynamic>
>
>                         <dynamic prepend=" VALUES (">
>
>                                    <isNotNull prepend="," property="id ">
>
>
> #id#
>
>                                    </isNotNull>
>
>                                    <isNotNull prepend="," property="state">
>
>
> #state#
>
>                                    </isNotNull>
>
>                                    <isNotNull prepend="," property="date">
>
>
> #date#
>
>                                    </isNotNull>
>
>                                    )
>
>                         </dynamic>
>
>             </insert>
>
>
>
> Giuseppe
>
>
>
> ________________________________
>
> Da: Gil Vernik [mailto:Gil.V@solaredge.com]
> Inviato: mercoledì 24 dicembre 2008 10.49
> A: user-java@ibatis.apache.org
> Oggetto: insert statement
>
>
>
> Hi there,
>
> I would like to write a dynamic insert statement, but both fields and values
> are dynamic.
>
> I mean
>
> <insert id="someIDhere" parameterClass="java.util.HashMap">
>
>         insert into table_one (
>
>             !!! dynamic list of keys from the HashMap
>
>         ) values (
>
>             !!! values
>
>         );
>
> </insert>
>
>
>
> I want both the list of column names and it's values to be filled
> automatically, depends on the parameterClass. How can I do it? I don't care
> to use something else, instead of java.util.Hashmap.
>
>
>
> Thanks,
>
> Gil.
>
>
>
> This message contains confidential information and is intended only for the
> individual named. If you are not the named addressee you should not
> disseminate, distribute or copy this e-mail. Please notify the sender
> immediately by e-mail if you have received this e-mail by mistake and delete
> this e-mail from your system. E-mail transmission cannot be guaranteed to be
> secure or error-free as information could be intercepted, corrupted, lost,
> destroyed, arrive late or incomplete, or contain viruses. The sender
> therefore does not accept liability for any errors or omissions in the
> contents of this message, which arise as a result of e-mail transmission. If
> verification is required please request a hard-copy version.

R: insert statement

Posted by De Gaetano Giuseppe <de...@PITAGORA.IT>.
Hi all,
I faced with the same problem and I solved in this way:
<insert id="insert_dynamic" parameterClass="Input">
                        INSERT INTO some_table
                        <dynamic prepend=" (">
                                   <isNotNull prepend="," property="id ">
                                                           ID
                                   </isNotNull>
                                   <isNotNull prepend="," property="state">
                                                           STATE
                                   </isNotNull>
                                   <isNotNull prepend="," property="date">
                                                           DATE
                                   </isNotNull>
                                   )
                        </dynamic>
                        <dynamic prepend=" VALUES (">
                                   <isNotNull prepend="," property="id ">
                                                           #id#
                                   </isNotNull>
                                   <isNotNull prepend="," property="state">
                                                           #state#
                                   </isNotNull>
                                   <isNotNull prepend="," property="date">
                                                           #date#
                                   </isNotNull>
                                   )
                        </dynamic>
            </insert>

Giuseppe

________________________________
Da: Gil Vernik [mailto:Gil.V@solaredge.com]
Inviato: mercoledì 24 dicembre 2008 10.49
A: user-java@ibatis.apache.org
Oggetto: insert statement

Hi there,
I would like to write a dynamic insert statement, but both fields and values are dynamic.
I mean
<insert id="someIDhere" parameterClass="java.util.HashMap">
        insert into table_one (
            !!! dynamic list of keys from the HashMap
        ) values (
            !!! values
        );
</insert>

I want both the list of column names and it's values to be filled automatically, depends on the parameterClass. How can I do it? I don't care to use something else, instead of java.util.Hashmap.

Thanks,
Gil.


This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission. If verification is required please request a hard-copy version.