ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nathan Maves <nathan.ma...@gmail.com>
Subject Re: how to pass two different types of values to query in IBATIS
Date Tue, 13 Apr 2010 18:03:40 GMT
Sure just name the parameters in your Mapper interface with @Param("foo")



On Tue, Apr 13, 2010 at 12:00 PM, cowwoc <cowwoc@bbs.darktech.org> wrote:
>
>    Is there an equivalent way to do this in iBatis 3 with annotations?
>
> Gili
>
> On 13/04/2010 8:50 AM, mukhi wrote:
>>
>> Your idea of passing a string value would not work out. I tried that....
>> since it is string SQL throws "Invalid number " exception. Do it in the
>> following way.
>>
>>
>>  <dynamic prepend=" WHERE">
>>                          <iterate property="choiceList" open="
>> CHOICE_REFNO
>> IN(" close=")" conjunction=",">#choiceList[]#
>>                      </iterate>
>>                      </dynamic>
>>
>>
>>
>> Above statement is equal to " WHERE CHOICE_REFNO IN( 90,89,93,45,67 )"
>>
>> This would work fine
>>
>>
>> François Schiettecatte wrote:
>>
>>>
>>> I think Mukhi is trying to pass a string and an array of numbers, the
>>> string being the entryRefno and the list of nunbers to be added to the
>>> IN() clause of the SELECT statement in the example given.
>>>
>>> The Map is the way to go, you just need to add the string as shows in the
>>> code sample below. The array of numbers is more complicated because I
>>> dont
>>> think there is way to iterate over an array in the map xml (correct me if
>>> I am wrong here). The way I would handle this is to turn the array into a
>>> comma separated string of numbers and pass that, so in the example below
>>> I
>>> would turn the array (90,89,93,45,67) into a string "90,89,93,45,67" and
>>> pass that. Ugly but workable.
>>>
>>> Did I understand the question correctly?
>>>
>>> Cheers
>>>
>>> François
>>>
>>>
>>> On Apr 12, 2010, at 10:41 AM, Nathan Maves wrote:
>>>
>>>
>>>>
>>>> I am not sure you are grasping the concept here.
>>>>
>>>> Both IB2 and IB3 can take any type of java.util.Map implementation as
>>>> a parameter.
>>>>
>>>> Map<String, Object>  parameters = new HashMap<String, Object>();
>>>> parameters.put("someNumber", Integer.valueOf(123));
>>>> parameters.put("someString", "hello");
>>>>
>>>> Now use that parameter as the single parameter to any ibatis sqlmap
>>>> client.
>>>>
>>>> In IB3 you can use multiple named parameters but the above will still
>>>> work.
>>>>
>>>> I would really suggest reading the developers guide.  This is all
>>>> covered in a very short pdf.
>>>>
>>>> Nathan
>>>>
>>>> On Mon, Apr 12, 2010 at 8:24 AM, mukhi<vkstudymaterial@gmail.com>
>>>>  wrote:
>>>>
>>>>>
>>>>> Thanks, but the parameter 'entryrefno' is of numeric type in my table.
>>>>> How
>>>>> can i pass two different types of values to Map  at the same time?
>>>>> Please reply me. I am struck at this point.
>>>>>
>>>>>
>>>>>
>>>>> Nate Weiss wrote:
>>>>>
>>>>>>
>>>>>> Hi mukhi--
>>>>>>
>>>>>> I'm pretty new to this list, but I believe the general solution is
to
>>>>>> make a HashMap and pass that in:
>>>>>>
>>>>>> Map params = new HashMap();
>>>>>> params.entryRefno= myEntryRefno;
>>>>>> params.someList = someList;
>>>>>> getSqlMapClientTemplate().insert("insertChoice", params);
>>>>>>
>>>>>> In iBatis 3 you also have the option of creating a mapper interface
>>>>>> class which allows you to pass in multiple params without a map.
>>>>>>
>>>>>>
>>>>>> On 4/11/2010 3:41 PM, mukhi wrote:
>>>>>>
>>>>>>>
>>>>>>> I am using Spring with Ibatis. I want to pass a sting value and
list
>>>>>>> to a
>>>>>>> query. How I can do that.
>>>>>>>
>>>>>>> My query is as follows
>>>>>>> INSERT INTO
>>>>>>>                  T_ENTRY_ANSWER_ASSOC( ENTRY_REFNO,
  CHOICE_REFNO  )
>>>>>>>
>>>>>>>                      SELECT  #entryRefno#,CHOICE_REFNO,
>>>>>>>                       FROM T_CHOICE
>>>>>>>                       WHERE CHOICE_REFNO IN ( 90,89,93,45,67)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> in the above query i need to pass two types of parameters.
>>>>>>> 1. Sting
>>>>>>> 2.list of values in where clause.
>>>>>>>
>>>>>>> How can i do it?
>>>>>>>
>>>>>>>
>>>>>>> What kind of parameter I can pass to call the query. while making
>>>>>>> call
>>>>>>>
>>>>>>> getSqlMapClientTemplate().insert("insertChoice",  What parameter
goes
>>>>>>> here?);
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>>>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>>
>>>>> http://old.nabble.com/how-to-pass-two-different-types-of-values-to-query-in-IBATIS-tp28211187p28218461.html
>>>>> Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>>>
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>
>>>
>>>
>>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: user-java-help@ibatis.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org


Mime
View raw message