ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yusuf" <Yu...@ekalife.co.id>
Subject iBatis usage pattern
Date Fri, 20 Jan 2006 01:29:36 GMT
Hello,
I've been using ibatis for quite some time now, and I like to ask some
questions to all ibatis gurus out there...
- For queries with joins from many table, i usually map results to a Map
(no need to make custom beans), for example:

<select id="employeeData" resultClass="map">
	SELECT *
	  FROM dept, emp, bonus
	 WHERE dept.deptno = emp.deptno AND emp.ename = bonus.ename(+)
</select>

But in the wiki about improving sqlmaps performance
(http://opensource2.atlassian.com/confluence/oss/display/IBATIS/How+do+I
+improve+SQL+Map+performance), 
Mr. Clinton said that always use a java bean to improve performance,
maybe like this:

<select id="employeeData" resultMap="employeeResultMap">
	SELECT *
	  FROM dept, emp, bonus
	 WHERE dept.deptno = emp.deptno AND emp.ename = bonus.ename(+)
</select>

<resultMap id="employeeResultMap" class="com.test.EmployeeData">
	...
</resultMap>

But how if we have so many multiple table queries, should I just make a
bean class for each custom queries i made (there are many of them)? Or
should I make a bean for each table in the database, for example maybe
we have classes Employee, Dept, Bonus, and define the resultMap like
this:

<resultMap id="employeeResultMap" class="com.test.ResultClass">
	<result property="dept.deptno" column="DEPTNO" javaType="string"
jdbcType="VARCHAR2"/>
	...
	<result property="emp.empno" column="EMPNO" javaType="string"
jdbcType="VARCHAR2"/>
	...
	<result property="bonus.comm" column="COMM" javaType="string"
jdbcType="VARCHAR2"/>
	...
</resultMap>

and the ResultClass:

class ResultClass{
	private Dept dept;
	private Emp emp;
	private Bonus bonus;

	//... getter setter
}

Thank you, and I'm sorry for a rather long question, but I've been
wondering about how do people used to map their results.

Yusuf


Mime
View raw message