I understand why people don't like ORMs. But I don't understand people who like iBatis: it is boilerplate like the hell. Imaging you have to separately update mappings for SQL select, insert, update and delete query (and these mappings are very long) for your entities.
For example, prepared statement for update looks like this:
PreparedStatement ps = ...;
ps.setLong(1, author.getUserId());
ps.setLong(2, author.getStreamId());
ps.setString(3, author.getNetwork());
ps.setString(4, author.getIdInNetwork());
ps.setString(5, author.getNote());
ps.setString(6, author.getSocialId());
....And manually counting questions is a normal practice when you add a field:
static final String UPDATE = "UPDATE Table1 SET Domains = ?, TemplateId = ?, InternalJson = ? WHERE StreamID = ?";
static final String INSERT = "INSERT INTO Config1 (UserID, StreamID, Domains, TemplateId, InternalJson) VALUES (?, ?, ?, ?, ?)";