sormula simple (easy) object relational mapping
Simple to program:
  • CRUD-ready: select, insert, update, and delete (more complex operations are available)
  • Annotate only what differs from the defaults (convention over configuration)
  • Accomplish almost everything with two classes (Database and Table) and a few annotations
  • No JPQL, HQL, OQL, etc.
  • No SQL required (custom SQL allowed)
  • No inheritance/interfaces required (active record uses inheritance; lazy loading uses interface)
  • No DAO's to implement
  • Zero configuration is possible (no configuration files, no SQL, no annotations, no inheritance/interfaces)
  • Use Active record pattern for the simplest approach (see Active Record Example)
Simple to configure:
  • One small jar (no dependencies)
  • No configuration files
  • No XML
Simple to understand:
  • Simple mental model
  • 21 examples are included
  • No lazy loading errors or caching complexities
Works with any relational database:
  • Creates standard SQL
  • Can be mixed with JDBC
  • Custom SQL allowed
  • Change database server/engine without changing any Java
Features:
Automated test suite of 132 tests:
  • Tested with H2 (included)
  • Tested with HSQLDB (included)
  • Tested with Derby (included)
  • Tested with SQLiteJDBC (included)
  • Tested with Firebird (test configuration and driver included)
  • Tested with DB2 (test configuration and driver included)
  • Tested with Oracle 11g (test configuration and driver included)
  • Easily run the suite of tests against your database (see add-database.txt in project)
Requirements:
  • Java SE 1.5 or later for Sormula 1.x
  • Java SE 1.7 or later for Sormula 2.x
  • A relational database supporting standard SQL (SQL-92 or later, SQL-99 if using identity columns)
  • SLF4J for logging (optional)
  • Apache Ant 1.8 or later (running tests and building from source)
  • Mercuial 2.0 or later (if making source code changes)
As simple as...
Zero Configuration Example