Java Reference
In-Depth Information
RowHandler objects can help speed up the processing of large sets of data if
needed. This is a last resort for dealing with large data sets, but it is also the Swiss
army knife of i BATIS . You can do almost anything with a RowHandler .
In section 6.1.2, we looked at the XML result-generation capabilities in i BATIS ,
and found them to be lacking in some ways—notably in the case where you want
to get a single XML document for a list of objects or for a complex object. In that
section we promised to show you how to get XML data using less memory than get-
ting an entire list or object graph and iterating through it. Using a RowHandler , we
still iterate through the objects, but only one element of that list is in memory at
one time. Here is a row handler that builds a single XML document with multiple
<account> elements in it:
public class AccountXmlRowHandler implements RowHandler {
private StringBuffer xmlDocument = new StringBuffer("<AccountList>");
private String returnValue = null;
public void handleRow(Object valueObject) {
Account account = (Account) valueObject;
public String getAccountListXml(){
if (null == returnValue){
returnValue = xmlDocument.toString();
return returnValue;
The code to use this with an existing mapped statement that returns a list of
Account objects is remarkably simple. The basic design is that you create an
instance of a RowHandler and call the queryWithRowHandler method, passing in the
Search WWH ::

Custom Search