Skip to content

Commit

Permalink
Run examples with a SQLite database
Browse files Browse the repository at this point in the history
  • Loading branch information
sualeh committed Jul 20, 2023
1 parent 16746d1 commit fbfbf0c
Show file tree
Hide file tree
Showing 8 changed files with 106 additions and 1,037 deletions.
@@ -1,8 +1,6 @@
package com.example;

import java.util.logging.Level;

import schemacrawler.inclusionrule.RegularExpressionInclusionRule;
import schemacrawler.schema.Catalog;
import schemacrawler.schema.Column;
import schemacrawler.schema.Schema;
Expand All @@ -29,8 +27,7 @@ public static void main(final String[] args) throws Exception {
// Create the options
final LimitOptionsBuilder limitOptionsBuilder =
LimitOptionsBuilder.builder()
.includeSchemas(new RegularExpressionInclusionRule("PUBLIC.BOOKS"))
.includeTables(tableFullName -> !tableFullName.contains("ΒΙΒΛΊΑ"));
.includeTables(tableFullName -> !tableFullName.contains("_PK"));
final LoadOptionsBuilder loadOptionsBuilder =
LoadOptionsBuilder.builder()
// Set what details are required in the schema - this affects the
Expand Down Expand Up @@ -63,10 +60,8 @@ public static void main(final String[] args) throws Exception {
}

private static DatabaseConnectionSource getDataSource() {
final String connectionUrl = "jdbc:hsqldb:hsql://localhost:9001/schemacrawler";
final DatabaseConnectionSource dataSource =
DatabaseConnectionSources.newDatabaseConnectionSource(
connectionUrl, new MultiUseUserCredentials("sa", ""));
return dataSource;
final String connectionUrl = "jdbc:sqlite::resource:test.db";
return DatabaseConnectionSources.newDatabaseConnectionSource(
connectionUrl, new MultiUseUserCredentials("", ""));
}
}
@@ -1,11 +1,9 @@
package com.example;

import static us.fatehi.utility.Utility.isBlank;

import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.logging.Level;

import schemacrawler.inclusionrule.RegularExpressionInclusionRule;
import schemacrawler.schemacrawler.LimitOptionsBuilder;
import schemacrawler.schemacrawler.LoadOptionsBuilder;
Expand All @@ -30,8 +28,7 @@ public static void main(final String[] args) throws Exception {

// Create the options
final LimitOptionsBuilder limitOptionsBuilder =
LimitOptionsBuilder.builder()
.includeSchemas(new RegularExpressionInclusionRule("PUBLIC.BOOKS"));
LimitOptionsBuilder.builder().includeTables(new RegularExpressionInclusionRule(".*_PK"));
final LoadOptionsBuilder loadOptionsBuilder =
LoadOptionsBuilder.builder()
// Set what details are required in the schema - this affects the
Expand Down Expand Up @@ -59,11 +56,9 @@ public static void main(final String[] args) throws Exception {
}

private static DatabaseConnectionSource getDatabaseConnectionSource() {
final String connectionUrl = "jdbc:hsqldb:hsql://localhost:9001/schemacrawler";
final DatabaseConnectionSource dataSource =
DatabaseConnectionSources.newDatabaseConnectionSource(
connectionUrl, new MultiUseUserCredentials("sa", ""));
return dataSource;
final String connectionUrl = "jdbc:sqlite::resource:test.db";
return DatabaseConnectionSources.newDatabaseConnectionSource(
connectionUrl, new MultiUseUserCredentials("", ""));
}

private static Path getOutputFile(final String[] args) {
Expand All @@ -73,7 +68,6 @@ private static Path getOutputFile(final String[] args) {
} else {
outputfile = "./schemacrawler_output.html";
}
final Path outputFile = Paths.get(outputfile).toAbsolutePath().normalize();
return outputFile;
return Paths.get(outputfile).toAbsolutePath().normalize();
}
}
Expand Up @@ -4,7 +4,6 @@
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.logging.Level;

import schemacrawler.schema.ResultsColumn;
import schemacrawler.schema.ResultsColumns;
import schemacrawler.tools.utility.SchemaCrawlerUtility;
Expand All @@ -21,16 +20,8 @@ public static void main(final String[] args) throws Exception {
new LoggingConfig(Level.OFF);

final String query =
"SELECT \n"
+ " BOOKS.TITLE AS BOOKTITLE, \n"
+ " AUTHORS.FIRSTNAME + ' ' + AUTHORS.FIRSTNAME AS AUTHOR \n"
+ "FROM \n"
+ " PUBLIC.BOOKS.BOOKS AS BOOKS \n"
+ " INNER JOIN PUBLIC.BOOKS.BOOKAUTHORS AS BOOKAUTHORS \n"
+ " ON BOOKS.ID = BOOKAUTHORS.BOOKID \n"
+ " INNER JOIN PUBLIC.BOOKS.AUTHORS AS AUTHORS \n"
+ " ON BOOKAUTHORS.AUTHORID = AUTHORS.ID \n";
try (final Connection connection = getConnection();
"SELECT T1.*, T2.* FROM TABLE1_PK T1 JOIN TABLE2_PK T2 ON T1.ENTITY_ID = T2.ENTITY_ID";
try (final Connection connection = getDatabaseConnectionSource().get();
final Statement statement = connection.createStatement();
final ResultSet results = statement.executeQuery(query)) {
// Get result set metadata
Expand All @@ -44,11 +35,9 @@ public static void main(final String[] args) throws Exception {
}
}

private static Connection getConnection() {
final String connectionUrl = "jdbc:hsqldb:hsql://localhost:9001/schemacrawler";
final DatabaseConnectionSource dataSource =
DatabaseConnectionSources.newDatabaseConnectionSource(
connectionUrl, new MultiUseUserCredentials("sa", ""));
return dataSource.get();
private static DatabaseConnectionSource getDatabaseConnectionSource() {
final String connectionUrl = "jdbc:sqlite::resource:test.db";
return DatabaseConnectionSources.newDatabaseConnectionSource(
connectionUrl, new MultiUseUserCredentials("", ""));
}
}
Binary file not shown.
Expand Up @@ -33,33 +33,17 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import com.example.ApiExample;
import com.example.ConnectionCheck;
import com.example.ExecutableExample;
import com.example.ResultSetExample;
import schemacrawler.test.utility.CaptureSystemStreams;
import schemacrawler.test.utility.CapturedSystemStreams;
import schemacrawler.testdb.TestDatabase;
import schemacrawler.tools.command.text.schema.options.TextOutputFormat;

@CaptureSystemStreams
public class ExampleTest {

private static TestDatabase testDatabase;

@BeforeAll
public static void startDatabase() {
testDatabase = TestDatabase.initializeStandard();
}

@AfterAll
public static void stopDatabase() {
testDatabase.stop();
}

@Test
public void apiExample(final CapturedSystemStreams streams) throws Exception {
ApiExample.main(new String[0]);
Expand All @@ -68,14 +52,6 @@ public void apiExample(final CapturedSystemStreams streams) throws Exception {
assertThat(outputOf(streams.out()), hasSameContentAs(classpathResource("ApiExample.txt")));
}

@Test
public void connectionCheck(final CapturedSystemStreams streams) throws Exception {
ConnectionCheck.main(new String[0]);

assertThat(outputOf(streams.err()), hasNoContent());
assertThat(outputOf(streams.out()), hasSameContentAs(classpathResource("ConnectionCheck.txt")));
}

@Test
public void executableExample(final CapturedSystemStreams streams) throws Exception {
// Test
Expand Down
70 changes: 21 additions & 49 deletions schemacrawler-examplecode/src/test/resources/ApiExample.txt
@@ -1,49 +1,21 @@
PUBLIC.BOOKS
o--> PUBLIC.BOOKS.AUTHORS
o--> PUBLIC.BOOKS.AUTHORS.ID (INTEGER)
o--> PUBLIC.BOOKS.AUTHORS.FIRSTNAME (VARCHAR)
o--> PUBLIC.BOOKS.AUTHORS.LASTNAME (VARCHAR)
o--> PUBLIC.BOOKS.AUTHORS.ADDRESS1 (VARCHAR)
o--> PUBLIC.BOOKS.AUTHORS.ADDRESS2 (VARCHAR)
o--> PUBLIC.BOOKS.AUTHORS.CITY (VARCHAR)
o--> PUBLIC.BOOKS.AUTHORS.STATE (CHARACTER)
o--> PUBLIC.BOOKS.AUTHORS.POSTALCODE (VARCHAR)
o--> PUBLIC.BOOKS.AUTHORS.COUNTRY (VARCHAR)
o--> PUBLIC.BOOKS.BOOKS
o--> PUBLIC.BOOKS.BOOKS.ID (INTEGER)
o--> PUBLIC.BOOKS.BOOKS.TITLE (VARCHAR)
o--> PUBLIC.BOOKS.BOOKS.DESCRIPTION (VARCHAR)
o--> PUBLIC.BOOKS.BOOKS.PUBLISHERID (INTEGER)
o--> PUBLIC.BOOKS.BOOKS.PUBLICATIONDATE (DATE)
o--> PUBLIC.BOOKS.BOOKS.PRICE (DOUBLE)
o--> PUBLIC.BOOKS.BOOKS.PREVIOUSEDITIONID (INTEGER)
o--> PUBLIC.BOOKS."Celebrities"
o--> PUBLIC.BOOKS."Celebrities"."Id" (INTEGER)
o--> PUBLIC.BOOKS."Celebrities".NAME (VARCHAR)
o--> PUBLIC.BOOKS.COUPONS
o--> PUBLIC.BOOKS.COUPONS.ID (INTEGER)
o--> PUBLIC.BOOKS.COUPONS.DATA (CLOB)
o--> PUBLIC.BOOKS.COUPONS.COUPONS (PUBLIC.BOOKS."INTEGER ARRAY")
o--> PUBLIC.BOOKS.COUPONS.BOOKS (PUBLIC.BOOKS."VARCHAR(20) ARRAY[10]")
o--> PUBLIC.BOOKS.CUSTOMERDATA
o--> PUBLIC.BOOKS.CUSTOMERDATA.ID (INTEGER)
o--> PUBLIC.BOOKS.CUSTOMERDATA.DATA (PUBLIC.BOOKS.VALID_STRING)
o--> PUBLIC.BOOKS.CUSTOMERS
o--> PUBLIC.BOOKS.CUSTOMERS.ID (INTEGER)
o--> PUBLIC.BOOKS.CUSTOMERS.FIRSTNAME (PUBLIC.BOOKS.NAME_TYPE)
o--> PUBLIC.BOOKS.CUSTOMERS.LASTNAME (PUBLIC.BOOKS.NAME_TYPE)
o--> PUBLIC.BOOKS.CUSTOMERS.AGE (PUBLIC.BOOKS.AGE_TYPE)
o--> PUBLIC.BOOKS.PUBLISHERS
o--> PUBLIC.BOOKS.PUBLISHERS.ID (INTEGER)
o--> PUBLIC.BOOKS.PUBLISHERS.PUBLISHER (VARCHAR)
o--> PUBLIC.BOOKS.BOOKAUTHORS
o--> PUBLIC.BOOKS.BOOKAUTHORS.BOOKID (INTEGER)
o--> PUBLIC.BOOKS.BOOKAUTHORS.AUTHORID (INTEGER)
o--> PUBLIC.BOOKS.BOOKAUTHORS.SOMEDATA (VARCHAR)
o--> PUBLIC.BOOKS."Celebrity Updates"
o--> PUBLIC.BOOKS."Celebrity Updates"."Celebrity Id" (INTEGER)
o--> PUBLIC.BOOKS."Celebrity Updates"."UPDATE" (VARCHAR)
o--> PUBLIC.BOOKS.AUTHORSLIST (VIEW)
o--> PUBLIC.BOOKS.AUTHORSLIST.ID (INTEGER)
o--> PUBLIC.BOOKS.AUTHORSLIST.FIRSTNAME (VARCHAR)
o--> PUBLIC.BOOKS.AUTHORSLIST.LASTNAME (VARCHAR)

o--> TABLE4_UNIQUE
o--> TABLE4_UNIQUE.ENTITY_ID (INTEGER)
o--> TABLE4_UNIQUE.COL12 (CHAR)
o--> TABLE4_UNIQUE.COL13 (VARCHAR)
o--> TABLE4_UNIQUE.COL14 (NUMERIC)
o--> TABLE4_UNIQUE.COL15 (TEXT)
o--> TABLE3_FK
o--> TABLE3_FK.ENTITY3_ID (INTEGER)
o--> TABLE3_FK.ENTITY_ID (INTEGER)
o--> TABLE3_FK.COL32 (CHAR)
o--> TABLE3_FK.COL33 (VARCHAR)
o--> TABLE3_FK.COL34 (NUMERIC)
o--> TABLE3_FK.COL35 (TEXT)
o--> TABLE5_FK
o--> TABLE5_FK.ENTITY5_ID (INTEGER)
o--> TABLE5_FK.ENTITY_ID (INTEGER)
o--> TABLE5_FK.COL32 (CHAR)
o--> TABLE5_FK.COL33 (VARCHAR)
o--> TABLE5_FK.COL34 (NUMERIC)
o--> TABLE5_FK.COL35 (TEXT)

0 comments on commit fbfbf0c

Please sign in to comment.