ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Prashanth Sukumaran <prashanthsukuma...@yahoo.com>
Subject Re: Lists of like objects as parameters to SqlMaps
Date Wed, 17 Aug 2005 16:18:02 GMT
Hi Eric,

Sometimes it is not good to advice people when you don't know it fully yourself.  But this
is how
i would do.

In normal JDBC i would achieve this by batchInsert.  Similar is the case with iBatis.

When executing in batch mode i do this.

try {

	for (int i = 0; i < dealerFrLines.length; i++) {
		param.put("dealerFrLines", new Integer(dealerFrLines[i]));
		insert("insertShopDFL", param);

} finally {



--- Eric Sheffer <esheffer@lycos.com> wrote:

> First of all, thanks for developing iBATIS!  It's very slick!
> Perhaps I'm missing something, but I've been unable to find any
> information about this question.  I've searched through the 
> documentation and posts to the mailing list and I'm surprised this 
> question hasn't been asked yet: is it possible to pass as a parameter 
> to a SqlMap a list of like objects that the framework would then act on?
> For example, I have an ArrayList of objects of type Widget.  I'd 
> like to insert into the database a row for each object in the 
> collection. It seems like the only way to do that is to write code 
> to iterate over the collection and call a method like "insertWidget" 
> on an WidgetSqlMapDao. 
> A logical extension to this (for me, at least ;-) is to pass the 
> collection directly to iBATIS and let it do the iterating. In the 
> following example, if the Widget SqlMap is defined as:
> <sqlmap id="Widget">
>   <typeAlias alias="widget" type="com.yoyodyne.domain.Widget"/>
>   <typeAlias alias="arrayList" type="java.util.ArrayList"/>
>   <parameterList id="widgetList" class="widget" type="arraylist"/>
>   <insert id="insertWidgets" parameterList="widgetList">
>      values (WIDGET_SEQ.NEXTVAL, #widgetName#, #category#, #price#)
>   </insert>
> </sqlmap>
> the framework could handle the iterating knowing that its being
> passed a list containing a collection of objects of type Widget.
> The new <parameterList/> tag would define a list of a specific
> type that contains instances of the specified class.  The parameterList
> attribute of the insert tag would tell the framework about the 
> list mapping and indicate that it is to iterate over the collection.
> I suppose the use of type arrays (i.e. Widget[]) could be considered
> as well.
> Am I out in the weeds here? Can iBATIS do this now?  Is there any 
> benefit to something like this?  Drawbacks?
> Anyway, again thanks for creating such a useful tool.
> Eric
> -- 
> _______________________________________________
> Search for businesses by name, location, or phone number.  -Lycos Yellow Pages
> http://r.lycos.com/r/yp_emailfooter/http://yellowpages.lycos.com/default.asp?SRC=lycos10

Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 

View raw message