ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Abhigyan Agrawal1 <abhigyan_agra...@in.ibm.com>
Subject Re: Small problem with date.
Date Fri, 10 Aug 2007 05:38:58 GMT
Hi Davy,
                I read your problem and have a few questions. 
1. Is your query working fine in DB2 client? 
2. You said the query is not working properly, would you throw some light 
on this. Please copy paste the error message here. 
        I don't think you should get error message if you change iBATIS 
xml. The cause must be something else. 

Cheers,
************************************************************************
Abhigyan Agrawal
************************************************************************



"davy" <davypulinckx@telenet.be> 
09/08/2007 14:17
Please respond to
user-java@ibatis.apache.org


To
user-java@ibatis.apache.org
cc

Subject
Re: Small problem with date.






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.setOrderByClause("substr(number,13,8)");
Example.createCriteria().andnumberBetween(fDate, uDate);


Every idea is welcome.
Davy




-----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
map:

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

Then add the method signature to the DAO interface:

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


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.

Cheers,
Chris

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.
>> 
>> 
>> 
>> 
>> 
>> 
> 
>





Mime
View raw message