Meta
for "advanced" JDBC types as defined by the specification.
Meta
for "advanced" JDBC types as defined by the specification. These include Array
,
JavaObject
, Struct
, and other types that require driver, schema, or vendor-specific
knowledge and are unlikely to be portable between vendors (or indeed between applications).
These mappings require (in addition to matching JDBC types) matching driver, schema, or
vendor-specific data types, sadly given as String
s in JDBC.
Meta
for "basic" JDBC types as defined by the specification.
Meta
for "basic" JDBC types as defined by the specification. These include the basic numeric
and text types with distinct get/setXXX
methods and fixed mappings that ostensibly work for
all compliant drivers. These types defined both "recommended" source types (jdbcSource
here)
and "supported" types (jdbcSourceSecondary
) which drivers must not reject outright, although
in many cases coercion failures are likely (reading an Int
from a VarChar
for instance) so
these mappings should be viewed with suspicion.
Metadata defining the column-level mapping to and from Scala type A
.
Metadata defining the column-level mapping to and from Scala type A
. A given Scala type might
be read from or written to columns with a variety of JDBC and/or vendor-specific types,
depending on supported coercions and luck.
Reading and writing values to JDBC is asymmetric with respect to null
, is complicated by
unboxed types, and is not consistent with idiomatic Scala; so some discussion is required.
Scala values should never be null
. Setting a NULL
JDBC value is accomplished via the
setNull
operation. Similarly when getting a JDBC value we must subsequently ask .wasNull
on the JDBC resource and decide how to handle the value. The Atom
typeclass takes care of
mapping nullable values to Option
so these issues should not be a concern for casual users.
Constructors, accessors, and typeclass instances.
Module defining the lowest level of column mapping.