A library binding various information from DatabaseMetaData.
// prepare jdbc information
final Connection connection = connect();
final DatabaseMetaData metadata = connection.getMetaData();
// create context, and add suppressions if required
final MetadataContext context = new MetadataContext(metadata);
context.suppress("schema/functions", "table/pseudoColumns");
// bind various informations
final List<Catalog> catalogs = context.getCatalogs();
final List<Schema> schemas = context.getSchemas("", null);
final List<Table> tables = context.getTables(null, null, null); // list all tables
final List<PrimaryKey> primaryKeys
= context.getPrimaryKeys("PUBLIC", "SYSTEM_LOBS", "BLOCKS");
Almost all classes are annotated with @XmlRootElement
.
final UDT udt;
final JAXBContext context = JAXBContext.newInstance(UDT.class);
final Marshaller marshaller = context.createMarshaller();
marshaller.mashal(udt, ...);
Test cases for in-memory databases such as Derby, H2, HSQLDB, SQLite are prepared.
Tests against predefined embeddable databases.
$ mvn -Pembedded-<profile> \
-Dserver=<server>
-Dclient=<client> \
-Dpaths="of/some,other/others,..." \
-Dtest=<test> \
test
$ cat target/embedded.<server>.xml
name | value | notes |
---|---|---|
server |
version of target database server | see below |
client |
version of target jdbc client | see below |
paths |
comma-separated suppression paths | optional |
database | profile |
server is the version of |
client is the version of |
test |
---|---|---|---|---|
MariaDB | mariadb |
ch.vorburger.mariaDB4j:mariaDB4j |
org.mariadb.jdbc:mariadb-java-client |
EmbeddedMariadbTest |
PostgreSQL | postgresql |
ru.yandex.qatools.embed:postgresql-embedded |
org.postgresql:postgresql |
EmbeddedPostgresqlTest |
Tests against existing external databases.
$ mvn -Pexternal-<server> \
-Dclient="x.y.z" \
-Durl="jdbc:...://..." \
-Duser="some" \
-Dpassword="some" \
-Dpaths="of/some,other/others,..." \
-Dtest=ExternalTest \
test
$ cat target/external.xml
name | value | notes |
---|---|---|
server |
target database server | see below |
client |
version of target jdbc client | see below |
url |
connection url | The first argument of DriverManager#getConnection |
user |
username | The second argument of DriverManager#getConnection |
password |
password | The third argument of DriverManager#getConnection |
paths |
comma-separated suppression paths | optional |
database | server |
client is the version of |
url prefix |
---|---|---|---|
MySQL | mysql |
mysql:mysql-connector-java |
jdbc:mysql://... |
MariaDB | mariadb |
org.mariadb.jdbc:mariadb-java-client |
jdbc:mariadb://... |
PostgreSQL | postgresql |
org.postgresql:postgresql |
jdbc:postgresql://... |
SQL Server | sqlserver |
com.microsoft.sqlserver:mssql-jdbc |
jdbc:sqlserver://... |
Oracle | oracle |
com.oracle.jdbc:ojdbc8 |
jdbc:oracle:thin://... |