title: Different ways to access database in Java
body: <p>There are a lot of technologies to access data using Java.
  I was reading about some of them, including:</p>
  
  <ul>
  <li>JPQL</li>
  <li>HQL</li>
  <li>Criteria API</li>
  <li>Querydsl</li>
  <li>jOOQ</li>
  <li>JaQu</li>
  <li>JDBC</li>
  <li>ActiveJDBC</li>
  </ul>
  
  <p>Now I am really confused because of the overhead. What are the main differences and similarities between these technologies? Which are most commonly used? Short comparison is more than welcome.</p>