ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "davy" <davypulin...@telenet.be>
Subject Re: Small problem with date.
Date Thu, 09 Aug 2007 08:47:59 GMT
I have done what you have mailto me, but we use db2 and there is the problem I get every time
a error message from DB2 when I change something in the xml file
Is there really now way to make it like this or something else, that I don’t have to change
the xml file.

Example.createCriteria().andnumberBetween(fDate, uDate);

Every idea is welcome.

-----Original Message-----
From: Christopher Lamey [mailto:clamey@localmatters.com] 
Sent: woensdag 8 augustus 2007 22:07
To: user-java@ibatis.apache.org
Subject: Re: Small problem with date.

Ah, the joy of legacy systems.

If you only have one SQL call that needs this, then I would write a new
SELECT element in your sqlmap and call it through the DAO.

Something like this in the sqlmap xml, where you reuse the abator result

<select id="search_by_date" parameterClass="map"
        resultClass=" abatorgenerated_BeheerResult">
    select * 
    from beheer
    where (substr(number,13,8)
    between #startNum:BIGINT# and #stopNum:BIGINT#

Then add the method signature to the DAO interface:

public List<Beheer> selectByDateNumber(long start, long stop) throws

And then implement it in the DAOImpl class:

public List<Beheer> selectByDateNumber(long start, long stop) throws
SQLException {
    Map<String, Long> params = new HashMap<String, String>();

    params.put("startNum", new Long(start));

    params.put("stopNum", new Long(stop));
    return sqlMapClient.queryForList("BEHEER.search_by_date", params);

I'm not sure what type you're using for the start and stop parameters, so
you should change them as needed.


On 8/8/07 1:41 PM, "Davy" <davypulinckx@telenet.be> wrote:

> Hooow, then I have a big problem, is there now other way to get 8 numbers
> (date) out of that specific number?
> Is this really not possible in Ibatis.
> Adding an extra column in the table is a problem.
> What would be the best way outside adding and extra column to the database
> to solve this problem?
> Any suggestion would be nice.
> Davy
> -----Original Message-----
> From: Richard Yee [mailto:ryee@cruzio.com]
> Sent: woensdag 8 augustus 2007 16:14
> To: user-java@ibatis.apache.org
> Subject: Re: Small problem with date.
> Davy,
> I suggest adding a date column to your table. It will make things a lot
> easier in the long run. You can run a program on your existing data to
> populate the new field. the search performance will be better too.
> -Richard
> davy wrote:
>> I have the next problem, I have a query which must filters a certain
> period out a number. for example:
>> this is the number 54789635479E200708081545 this means
>> 2007 year 08 month 08 day 15 hour 45 minutes.
>> Now, i have a query (substr(number,13,8) between ? and ?
>> This means that the user can give a certain from date and until date
> (year,month,day) sow the query will search on this date in these number
>> I have developed this :
>> Example.setOrderByClause("substr(number,13,8)");
>> Example.createCriteria().andnumberBetween(fDate, uDate);
>> fDate and uDate = are both strings, these are the 2 dates that the user
> has given to search for.
>> for example 
>> fDate = 20050101 from
>> uDate = 20063112 until
>> When i use the query, al my numbers are displayd, butt the query have not
> worked properly.
>> Is there someone that has a proposal how it must be done.

View raw message