Sql2o is a small java library, with the purpose of making database interaction easy. When fetching data from the database, the ResultSet will automatically be filled into you POJO objects. Kind of like an ORM, but without the sql generation capabilities.
Check out the sql2o website for examples.
A key feature of sql2o is performance. The following metrics were based off the Dapper.NET metrics. Note that typical usage can differ from optimal usage for many frameworks. Depending on the framework, typical usage may not involve writing any SQL, or it may map underscore case to camel case, etc.
Execute 1000 SELECT statements against a DB and map the data returned to a POJO. Code is available here.
Method | Duration |
---|---|
Hand coded ResultSet |
60ms |
Sql2o | 75ms (25% slower) |
Apache DbUtils | 98ms (63% slower) |
JDBI | 197ms (228% slower) |
MyBatis | 293ms (388% slower) |
jOOQ | 447ms (645% slower) |
Hibernate | 494ms (723% slower) |
Spring JdbcTemplate | 636ms (960% slower) |
Want to contribute? Awesome! Here's how to set up.
When hacking sql2o, please follow these coding guidelines.
To run the oracle database tests it is necessary to download the oracle jdbc driver manually, and register it with maven. Oracle does not have a public repository where maven can download the driver automatically. Note that public repositories do exist, but they are all technically illegal.
- Download the ojdbc6.jar version 11.2.0.3 from here
- Install it into your local maven repo by running this command:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true