Thanks you for your honesty and the clarification.
Cheers,
Clinton
On 2/28/06, Tony Qian <[EMAIL PROTECTED]
> wrote:
Brandon and all,
I convinced myself now that iBATIS is almost as good as JDBC for simple
query. I made mistake that I forgot to turn off ibatis debug log. After
I turned it off, iBATIS and JDBC call were very close.
Sorry for confusion and wish the best for iBATIS and this community.
Thanks,
Tony
Brandon Goodin wrote on 2/28/2006, 11:15 AM:
> Please post all the code you use to test jdbc and ibatis. There are a
> few mistakes that people can often make. One is that you don't perform
> the resultset to object translation. The next is that the test could
> be loading the sqlmap each time it is run. iBATIS will have initial
> overhead because it is parsing and loading the sqlmaps into memory.
>
> Brandon
>
> On 2/28/06, Tony Qian <[EMAIL PROTECTED]> wrote:
> > Clinton and all,
> >
> > Let me first thank you guys for quick response. I believe we have
> the best
> > tech support among open source community, either from iBATIS team or
> from
> > iBATIS users.
> >
> > I used a very simple query which fetches all records in the table (72
> > rows). Here are some info for my test.
> >
> > database: MySql 5.0, query cache is turned on.
> > iBATIS setting:
> >
> > <settings cacheModelsEnabled="true" // but no cache is set
> for query
> > enhancementEnabled="true"
> > lazyLoadingEnabled="false"
> > maxRequests="32"
> > maxSessions="10"
> > maxTransactions="5"
> > useStatementNamespaces="false" />
> > <property name="Pool.PingEnabled" value="false"/>
> >
> > xml mapping for query:
> > <typeAlias alias="sessionParameter"
> >
>
type="com.netscape.isp.business.management.session.SimpleSessionParameter"/>
>
> > <select id="getSessionParameterList"
> resultClass="sessionParameter" >
> > SELECT
> > parameter_id as parameterId,
> > parameter_name as name,
> > description as description
> > FROM SESSION_PARAMETER ORDER by parameter_name
> > </select>
> >
> > Java code:
> > try{
> > long stime = System.currentTimeMillis ();
> > Context ctx = new InitialContext();
> > DataSource dataSource = (DataSource)
> > ctx.lookup("java:comp/env/jdbc/quickstart");
> > Connection connection = dataSource.getConnection();
> > Statement stmt = connection.createStatement();
> > String sql = "SELECT parameter_id, parameter_name,
> description
> > FROM SESSION_PARAMETER;" ;
> > stmt.execute(sql);
> > ResultSet rS = stmt.getResultSet();
> > List list = new ArrayList();
> > if (rS.first()) {
> > do {
> > list.add(new SimpleSessionParameter(
> > rS.getString("parameter_id"),
> > rS.getString("parameter_name"),
> > rS.getString("description")));
> > } while (rS.next());
> > } else {
> > throw new NotFoundException("no records were found");
> > }
> > rS.close();
> > stmt.close();
> > out.println("executing time is " +
> (System.currentTimeMillis()
> > - stime) +
> > " current time =" +System.currentTimeMillis() + "
> > startTime = " + stime);
> > stime = System.currentTimeMillis ();
> > List parameter = new SimpleSessionParameterList(); //
> > basically it calls "list =
> sqlMap.queryForList("getSessionParameterList",
> > null);"
> > out.println("Ibatis executing time is " +
> > (System.currentTimeMillis() - stime) +
> > " current time ="
> > +System.currentTimeMillis() + "startTime = " + stime);
> > }catch (Exception e){
> > out.println(" get exception" + e.getMessage());
> > }
> >
> >
> > Test results:
> > JDBC executing time is 30 current time =1141136720755 startTime =
> > 1141136720725
> > Ibatis executing time is 100 current time =1141136720855startTime =
> > 1141136720755
> >
> > JDBC executing time is 40 current time =1141136723448 startTime =
> > 1141136723408
> > Ibatis executing time is 110 current time =1141136723558startTime =
> > 1141136723448
> >
> > JDBC executing time is 20 current time =1141136725741 startTime =
> > 1141136725721
> > Ibatis executing time is 100 current time =1141136725841startTime =
> > 1141136725741
> >
> > executing time is 30 current time =1141137529882 startTime =
> 1141137529852
> > Ibatis executing time is 101 current time =1141137529983startTime =
> > 1141137529882
> >
> > I appreciate your help.
> > Tony
> >
> > Clinton Begin wrote on 2/28/2006, 1:59 AM:
> >
> >
> > Post your test code, and I'll show you what's wrong with it.
> >
> > Clinton
> >
> >
> >
> > On 2/27/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> >
> > Sven,
> >
> > thanks for your response. I did some preliminary test on iBATIS'
> > performance. For JDBC (MySql 5.0), i recorded time from establishing
> > connection, result set, and mapping the result to objects. For list of
> > simple objects, it seems to me that iBATIS (no caching and
> lazyloading) is
> > 3-5 times slower than using JDBC. Of course, i believe my xml
> mapping has
> > room to improve.
> >
> > The reason I asked is that I need some stats to persuade myself and
> > coworkers to accept iBATIS as a data persistence tool for our
> relatively
> > heavily loaded servers.
> >
> > btw, we just pushed a project using iBATIS to QE. For that project,
> > performance is not big issue.
> >
> > Thanks,
> > Tony
> >
> >
>
