No. :-) Collections suck. They're slow, not type safe, harder to test, less descriptive, unpredictable and generally crap. Using collections for a domain model in my opinion is a horrible idea.
But I still love you Vic. Clinton ;-) On Sat, 15 Jan 2005 12:53:34 -0600, Vic Cekvenich <[EMAIL PROTECTED]> wrote: > Just to state the obvious alternative: > <select id="login" resultClass="java.util.HashMap" > cacheModel="sec_cache"> > > Using collections! > I have done a few iBatis projects ;-) , and this is what I do. > > Try that for a bit. This also avoids having to write any beans. That > gets old too. (I learned a lot from Flex's use of Associative Arrays aka > Collections. Flex is writen by the guy that wrote Poolman/ I forget his > name ). > I know that there are some prejedices FOR beans... but try it; you may > be suprised. The strongest part of Java lang is collections. > It also makes it loosley coupled. > Imagine using DisplayTag w/ iBatis. I can add/remove/hide/compute > columns in either the view or the DAO w/ out chaning the middle or the > other side. > And... it encourages working on SQL as a set (or rows). So you return an > ArrayList of Maps. > The performance impact is minimal even uder load. > > The last +: CoR chains. I used this, and as we know... it is > execute(Context) where context is a map. What a easy way to pass arround > arguments and results. > So ... VO/DTO can easily be a collection. > > ot: think NO_ENTRY should be default, that is my favoirte PITA. > > .V > > > Clinton Begin wrote: > > >Hi all, > > > >Okay, I'm sick of typing out parameter map and result map stanzas, how > >about you? We'll always have them, as they are a primary structure > >for an SQL map, and future tools may use them. However, I want to > >implement a shorthand method. The approach would be similar to inline > >parameter maps. For example (excuse the % tokenization, it's just for > >example purposes). > > > ><select id="getPersonByID" parameterClass="int" resultClass="e.g.Person"> > > SELECT > > PERSON_ID AS %id%, > > FIRST_NAME AS %firstName%, > > LAST_NAME AS %lastName%, > > BIRTH_DATE AS %birthDate,javaType=date,jdbcType=DATE% > > FROM PERSON > > WHERE PERSON_ID = #value# > ></select> > > > >Some caveats: > > > >1) The SQL is less pure, and more mangled. Although initially this > >looks bad, I think most people use the built-in logging or P6Spy to > >grab the real statements anyway. Also, for initial SQL development, > >it doesn't reduce the ability for a database admin to write the SQL > >(or if it does in your case, you still have the option of an external > ><resultMap>). > > > >2) Dynamic SQL performance may be slightly impacted (no more so than > >inline parameters, which is the only way to do dynamic SQL anyway). > > > >3) The paramter tokenization may get out of hand. We already know we > >want a new syntax, and this will give us the additional motivation to > >move in that direction. Currently we have #parameters#, > >$substitutions$ and with the above example of inline results, we'd > >have %results%. > > > >An option for different tokenization might be something like: > >P{parameter}, S{substitution} and R{result}. This is similar to the > >Ant ${property} syntax, and will have fewer conflicts with potential > >new dynamic SQL languages (like velocity, which reservs #), and > >certain databases (like JDE that often uses # in column names). > > > >This would completely eliminate the need to write <resultMap> > >elements. Of course we'd need to forward some additional properties > >like groupBy to the <select> element, and also include a facility for > >the upcoming <subclass> element. But neither of those pose a problem. > > This is mostly a change to the XML parser, and not to the > >functionality of the framework. > > > >Thoughts? > > > >Cheers, > >Clinton > > > >Thoughts? > > > > > > > > > > > -- > RiA-SoA w/JDNC <http://www.SandraSF.com> forums > - help develop a community > My blog <http://www.sandrasf.com/adminBlog> >