title: Comparing Querydsl, jOOQ, JEQUEL, activejdbc, iciql and other query DSLs
body: <p>Can someone point me to some resources about the performance comparison among the different Query DSL libraries available for using with Java, like: <strong><a href="http://www.querydsl.com/" rel="noreferrer" title="QueryDSL">Querydsl</a></strong>, <strong><a href="http://sourceforge.net/apps/trac/jooq" rel="noreferrer" title="jOOQ">jOOQ</a></strong>, <strong><a href="http://www.jequel.de/" rel="noreferrer" title="JEQUEL">JEQUEL</a></strong>, <strong><a href="http://code.google.com/p/activejdbc/" rel="noreferrer" title="activejdbc">activejdbc</a></strong>, <strong><a href="http://iciql.com/" rel="noreferrer" title="iciql">iciql</a></strong> and etc...</p>
  
  <p><em>Background:</em> I m using Spring JDBC template, but that still required the queries to be written in plain string format. Although I don't have issues in writing the direct queries, but I m concerned having direct dependency on DB table names. I don't want to use any ORM framework like Hibernate or JPA/EclipseLink. I need the raw performance as high as possible (IMO, they are good for more CRUD centric applications). I can afford some slight overhead for  the these DSLs only if that is a little (I believe, it'll be mostly StringBuilder/String concatenations!)</p>
  
  <p>I've considered using named queries externalised in some xml. But just trying to evaluate the value different Query DSL libraries provide.</p>
  
  <p><strong><em>Edit: more on my requirement:</em></strong>
  I want to know the performance comparison among these when building a moderately complex query using their API methods. All I need is to generate a query string using any of these query DSL libraries and pass that to Spring JDBC template. So, I want to know if addition of this intermediate step incurs considerable performance penalty, I want to use named queries or build my own library which just uses StingBuilder or similar approach</p>
  
  <p><strong><em>update</em></strong> my experience with jOOQ, iciql, QueryDSL:</p>
  
  <p>All though I missed to mention this in my original post, I m also keen about the ease of use &amp; the overhead I need to have in my entity classes (like if any additional annotations or implementations required). </p>
  
  <p>jOOQ: </p>
  
  <ul>
  <li>requires changing the entity properties to the library specific way</li>
  <li>can return SQL query string</li>
  </ul>
  
  <p>Iciql:</p>
  
  <ul>
  <li>entity can be mapped with no or little changes (can be mapped using total 3 ways)</li>
  <li>but with that it limits to only select queries (for update/delete/... requires entity changes again)</li>
  </ul>
  
  <p>QueryDSL:</p>
  
  <ul>
  <li>multiple ways to bind entities with table (other than library specific ways, using JPA annotations is supported). but we need to modify the entities at least</li>
  <li>no simple/direct way to get the query string</li>
  </ul>
  
  <p>(all observations are with little knowledge I've on these; if any of these are incorrect, please correct)</p>
  
  <p>With all of the above, I m sticking with writing named queries :( But as the Lukas Eder answer seems explains about my original post concern (performance), I've accepted his.</p>