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 Henry Lu <zh...@umich.edu> on 2006/02/14 14:00:29 UTC

abator

I downloaded the abator. How do I run it as standalone application? What
is the command?

-Henry

Clinton Begin wrote:

>
> Nope. Your solution is fine.
>
> Cheers,
> Clinton
>
> On 2/12/06, *wang lei* <wl_95421@yahoo.com.cn
> <ma...@yahoo.com.cn>> wrote:
>
>     I am soryy not to agree to your opinions.
>     You said the <dynamic> xml is simpler than the code.
>     Now i want to write it in detail.
>     the code is the following;
>     int id=...
>     int min=...
>     int max=...
>     //get value from the servlet parameter
>     IQuery t_AllQuery = this.dao.newQuery(User.class);
>     if(id>0)
>     {
>     IQuery t_Query = this.dao.newQuery(User.class);
>     t_Query.addEqualTo("equal", new Integer(id));
>
>     t_AllQuery.addOrCriteria(t_Query);
>     }
>
>     if(min>0)
>     {
>     IQuery t_Query = this.dao.newQuery(User.class);
>     t_Query.addEqualTo("min", new Integer(min));
>
>     t_AllQuery.addOrCriteria(t_Query);
>     }
>
>     if(max<1000000)
>     {
>     IQuery t_Query = this.dao.newQuery(User.class);
>     t_Query.addEqualTo("max", new Integer(max));
>
>     t_AllQuery.addOrCriteria(t_Query);
>     }
>     *Now if the following urls are:*
>     *example.do?id=12&min=100*
>     *example.do?min=100*
>     *example.do?id=12&max=100*
>     *...*
>     *...*
>     8 urls can listed and 8 sql statements will be executed.
>     Now may be 8 <dynamic> statement to support this query.
>     < /DIV>
>     With the increment of the condition, more sqls will be added,it's
>     difficult to maintain.
>     So i can't agree to your opinions of "the dynamic tag is simpler".
>     And which one is easy to understand, "java code" or xml.
>     for me,8 <dynamic> xml will be more difficult to maintain and
>     understand.
>     If you have a good solution or any idea,just give me,
>     Thanks for your help.
>     Addtionaly:
>     why I need to implement a dao to support ojb,hibernate and
>     ibatis,even jdbc.
>     because our company has some products to sell,some time these
>     products is needed to work with some products from other companies.
>     So w e must have a common dao to support plantation.
>>
>> As far as I can tell, the dynamic SQL example you gave is shorter
>     than
>> the Java code you wrote (if you get rid of the redundant CDATA
>     sections).
>>
>> That said, I understand your point. A future goal for iBATIS SQL Maps
>> (Data Mapper) will be to more easily support ad-hoc queries and
>> configuration via the Java API. This will help you get to where
>     you want
>> to be. Unfortunatley it's not available yet.
>>
>> Cheers,
>> Clinton
>>
>> wang lei wrote:
>>
>>> At first, thanks for the quick reply from Brandon Goodin.
>>> I use java for 3 years.
>>> My major work is to provide small base libraries or swing and swt
>>> controls for the developers in our company.
>     >> I don't have much experien ce in big projects.
>
>>> So my opinions is just based on the small or medium projects.
>>> My idea for "design" is simple. I try to make the developer know
>     how
>>> to use my library in 1-3 hours.The simplicity is what i need.
>>> I think i understand what Brandon Goodin said.
>>> The strength of ibatis is make it easy to use the database's
>>> characteristic.
>>> If i use ibatis,i should use sql instead of the "Criteria".
>>> But i want more simplicity and flexibility.
>>> The following is a example.
>>> int id=...
>>> int min=...
>>> int max=...
>>> //get value from the servlet parameter
>>> IQuery t_AllQuery = this.dao.newQuery(User.class);
>>> if(id>0)
>>> {
>>> IQuery t_Query = this.dao.newQuery (User.class);
>>> t_Query.addEqualTo("equal", new Integer(id));
>>>
>>> t_AllQuery.addOrCriteria(t_Query);
>>> }
>>>
>>> if(min>0)
>>> {
>>> IQuery t_Query = this.dao.newQuery(User.class);
>>> t_Query.addEqualTo("min", new Integer(min));
>>>
>>> t_AllQuery.addOrCriteria(t_Query);
>>> }
>>>
>>> if(max<1000000)
>>> {
>>> IQuery t_Query = this.dao.newQuery(User.class);
>>> t_Query.addEqualTo("max", new Integer(max));
>>>
>>> t_AllQuery.addOrCriteria(t_Query);
>>> }
>>> the java code above is common in out projects.
>>> How many <dynamic> sql i need to write.
>>> I write one example.
>>> <sql id="selectUserWhere">
>>> <dynamic prepend="where">
>>> <isPropertyAvailable prepend="and" property="equal">
>>> <![CDATA[
>>> USER_ID=#equal#
>>> ]]>
>>> <isPropertyAvailable prepend="or" property="min">
>>> <![CDATA[
>>> USER_ID>#min#
>>> ]]>
>>> <isPropertyAvailable prepend="and" property="max">
>>> <![CDATA[
>>> USER_ID<#"max"#
>>> ]]>
>>> </isPropertyAvailable>
>>> </isPropertyAvailable>
>>> </isPropertyAvailable>
>>> </dynamic>
>>> </sql>
>>> <select id="doSelectUser" parameterClass="java.util.Map "
>>> resultMap="userResult">
>>> <![CDATA[
>>> Select USER_ID, USER_NAME, PHOTO, USER_MEMO from DEMO.USER_T
>>> ]]>
>>> <include refid="selectUserWhere" />
>>> </select>
>>> If there is no the parameter of "equal".
>>> the sql for execution will be
>>> "Select USER_ID, USER_NAME, PHOTO, USER_MEMO from DEMO.USER_T".
>>> I want to know h ow can i make it easy to handle it.
>>>
>
>     ------------------------------------------------------------------------
>     想成为冯小刚、陈凯歌、张纪中三大导演的主角吗?
>     <http://sostar.cn.yahoo.com>
>
>

Re: abator

Posted by Jeff Butler <je...@gmail.com>.
Please read the documentation included with Abator (the README.TXT file).
It shows exactly how to use the tool.

I admit that my use of the word "standalone" is a little misleading - you
need to use Ant or call it from a Java program you write.  I'll add a true
standalone command in the next version.

Also, please don't hijack discussion threads.

Jeff Butler