Skip to content

Features

Philippe Marschall edited this page Mar 22, 2017 · 17 revisions
  • avoids JDBC metadata access
    • works if the database user is not the schema owner
    • works if there are hundreds of visible schemas
  • works with Oracle PL/SQL packages
  • works with DB2 modules
  • supports extracting values from ref cursors
  • supports different ways of retrieving results
    • procedures with out parameters
    • procedures with inout parameters
    • functions with out parameters
    • database drivers that return ResultSets
  • names for schemas, procedures and parameters can be supplied explicitly or derived if you have a naming convention
    • supports binding by parameter names
    • parameter names can be read from source (if you compile with -parameters)
  • supports primitive types
  • supports SQL arrays
    • supports Oracle SQL arrays
  • supports Oracle PL/SQL booleans
  • supports Java 8 Date and Time API (if the driver supports it)
  • does reflection only once per method and caches the meta data for future calls
  • interfaces can be mocked or stubbed easily for tests that don't require database access
  • allows controlling the fetch size for procedures that return ResultSets (eg. ref cursors)
  • integrates with Spring but does not require Spring
  • no dependencies, Spring is merely an optional dependency
  • no bytecode parsing
  • no runtime bytecode generation or manipulation
  • no #setAccessible(true)
  • no thread locals
  • permissive license (MIT)