Search in sources :

Example 16 with DataSourceFactory

use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.

the class MultiOperationTest method multiRowOperation.

/**
 * Execute a query returning a single result.
 */
@Test
public void multiRowOperation() {
    fail("TODO: Fix this test");
    DataSourceFactory factory = DataSourceFactory.newFactory(FACTORY_NAME);
    try (DataSource ds = factory.builder().url(URL).username(USER).password(PASSWORD).build();
        Session session = ds.getSession(t -> fail("ERROR: " + t.getMessage()))) {
        assertNotNull(session);
        MultiOperation multiOp = session.multiOperation("select * from forum_user").onError(t -> {
            fail(t.toString());
        });
        RowOperation rowOp = multiOp.<Integer>rowOperation();
        multiOp.submit();
        rowOp.collect(Collector.<Result.RowColumn, int[], Integer>of(() -> new int[1], (int[] a, Result.RowColumn r) -> {
            a[0] = a[0] + r.at("sal").get(Integer.class);
        }, (l, r) -> l, a -> (Integer) a[0])).onError(t -> {
            fail(t.toString());
        }).submit().getCompletionStage().thenAccept(n -> {
            assertTrue(((long) n > 0));
        }).toCompletableFuture().get(TestConfig.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
    } catch (Exception e) {
        fail(e.getMessage());
        e.printStackTrace();
    }
}
Also used : DataSourceFactory(jdk.incubator.sql2.DataSourceFactory) BeforeClass(org.junit.BeforeClass) RowOperation(jdk.incubator.sql2.RowOperation) CompletableFuture(java.util.concurrent.CompletableFuture) ArrayList(java.util.ArrayList) SqlException(jdk.incubator.sql2.SqlException) OperationGroup(jdk.incubator.sql2.OperationGroup) Flow(java.util.concurrent.Flow) BiConsumer(java.util.function.BiConsumer) Collector(java.util.stream.Collector) Session(jdk.incubator.sql2.Session) AfterClass(org.junit.AfterClass) Properties(java.util.Properties) JDBC_CONNECTION_PROPERTIES(com.oracle.adbaoverjdbc.JdbcConnectionProperties.JDBC_CONNECTION_PROPERTIES) AdbaType(jdk.incubator.sql2.AdbaType) Test(org.junit.Test) RowPublisherOperation(jdk.incubator.sql2.RowPublisherOperation) TransactionCompletion(jdk.incubator.sql2.TransactionCompletion) Date(java.sql.Date) TimeUnit(java.util.concurrent.TimeUnit) DataSource(jdk.incubator.sql2.DataSource) List(java.util.List) CompletionStage(java.util.concurrent.CompletionStage) Result(jdk.incubator.sql2.Result) RowCountOperation(jdk.incubator.sql2.RowCountOperation) ForkJoinPool(java.util.concurrent.ForkJoinPool) MultiOperation(jdk.incubator.sql2.MultiOperation) Assert(org.junit.Assert) Submission(jdk.incubator.sql2.Submission) DataSourceFactory(jdk.incubator.sql2.DataSourceFactory) MultiOperation(jdk.incubator.sql2.MultiOperation) RowOperation(jdk.incubator.sql2.RowOperation) SqlException(jdk.incubator.sql2.SqlException) DataSource(jdk.incubator.sql2.DataSource) Session(jdk.incubator.sql2.Session) Result(jdk.incubator.sql2.Result) Test(org.junit.Test)

Example 17 with DataSourceFactory

use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.

the class MultiOperationTest method multiRowCountOperation.

/**
 * Do something that approximates real work. Do a transaction. Uses
 * TransactionCompletion, CompletionStage args, and catch Operation.
 */
@Test
public void multiRowCountOperation() throws Exception {
    fail("TODO: Fix this test");
    DataSourceFactory factory = DataSourceFactory.newFactory(FACTORY_NAME);
    try (DataSource ds = factory.builder().url(URL).username(USER).password(PASSWORD).build();
        Session session = ds.getSession(t -> fail("ERROR: " + t.getMessage()))) {
        assertNotNull(session);
        TransactionCompletion trans = session.transactionCompletion();
        MultiOperation multiOp = session.multiOperation("update forum_user set city_id = ?" + " where id = ?").set("1", 40, AdbaType.INTEGER).set("2", 7782, AdbaType.INTEGER).onError(t -> {
            System.out.println(t.toString());
        });
        RowCountOperation<Long> cntOp = multiOp.<Long>rowCountOperation();
        multiOp.submit();
        cntOp.apply(c -> {
            long count = c.getCount();
            if (count != 1L)
                throw new SqlException("updated wrong number of rows", null, null, -1, null, -1);
            return count;
        }).onError(t -> t.printStackTrace()).submit().getCompletionStage().thenAccept(c -> {
            assertTrue((long) c > 0);
        });
        session.catchErrors();
        session.rollback().toCompletableFuture().get(TestConfig.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
    }
}
Also used : DataSourceFactory(jdk.incubator.sql2.DataSourceFactory) BeforeClass(org.junit.BeforeClass) RowOperation(jdk.incubator.sql2.RowOperation) CompletableFuture(java.util.concurrent.CompletableFuture) ArrayList(java.util.ArrayList) SqlException(jdk.incubator.sql2.SqlException) OperationGroup(jdk.incubator.sql2.OperationGroup) Flow(java.util.concurrent.Flow) BiConsumer(java.util.function.BiConsumer) Collector(java.util.stream.Collector) Session(jdk.incubator.sql2.Session) AfterClass(org.junit.AfterClass) Properties(java.util.Properties) JDBC_CONNECTION_PROPERTIES(com.oracle.adbaoverjdbc.JdbcConnectionProperties.JDBC_CONNECTION_PROPERTIES) AdbaType(jdk.incubator.sql2.AdbaType) Test(org.junit.Test) RowPublisherOperation(jdk.incubator.sql2.RowPublisherOperation) TransactionCompletion(jdk.incubator.sql2.TransactionCompletion) Date(java.sql.Date) TimeUnit(java.util.concurrent.TimeUnit) DataSource(jdk.incubator.sql2.DataSource) List(java.util.List) CompletionStage(java.util.concurrent.CompletionStage) Result(jdk.incubator.sql2.Result) RowCountOperation(jdk.incubator.sql2.RowCountOperation) ForkJoinPool(java.util.concurrent.ForkJoinPool) MultiOperation(jdk.incubator.sql2.MultiOperation) Assert(org.junit.Assert) Submission(jdk.incubator.sql2.Submission) DataSourceFactory(jdk.incubator.sql2.DataSourceFactory) MultiOperation(jdk.incubator.sql2.MultiOperation) SqlException(jdk.incubator.sql2.SqlException) TransactionCompletion(jdk.incubator.sql2.TransactionCompletion) DataSource(jdk.incubator.sql2.DataSource) Session(jdk.incubator.sql2.Session) Test(org.junit.Test)

Example 18 with DataSourceFactory

use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.

the class MultiOperationTest method multiRowCountOperationWithCountHandler.

@Test
public void multiRowCountOperationWithCountHandler() throws Exception {
    fail("TODO: Fix this test");
    DataSourceFactory factory = DataSourceFactory.newFactory(FACTORY_NAME);
    try (DataSource ds = factory.builder().url(URL).username(USER).password(PASSWORD).build();
        Session session = ds.getSession(t -> fail("ERROR: " + t.getMessage()))) {
        assertNotNull(session);
        BiConsumer<Integer, RowCountOperation<Long>> countHandler = (resNum, cntOp) -> {
            assertTrue(resNum > 0);
            cntOp.apply(c -> {
                long count = c.getCount();
                if (count != 1L)
                    fail("updated wrong number of rows");
                return count;
            }).onError(t -> fail(t.toString())).submit().getCompletionStage().thenAccept(c -> {
                assertTrue(c > 0);
            });
        };
        MultiOperation multiOp = session.multiOperation("update forum_user" + " set city_id = ?" + " where id = ?").set("1", 40, AdbaType.INTEGER).set("2", 7782, AdbaType.INTEGER).onError(t -> {
            fail(t.toString());
        });
        multiOp.onCount(countHandler).submit();
        session.catchErrors();
        session.rollback().toCompletableFuture().get(TestConfig.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
    }
}
Also used : DataSourceFactory(jdk.incubator.sql2.DataSourceFactory) BeforeClass(org.junit.BeforeClass) RowOperation(jdk.incubator.sql2.RowOperation) CompletableFuture(java.util.concurrent.CompletableFuture) ArrayList(java.util.ArrayList) SqlException(jdk.incubator.sql2.SqlException) OperationGroup(jdk.incubator.sql2.OperationGroup) Flow(java.util.concurrent.Flow) BiConsumer(java.util.function.BiConsumer) Collector(java.util.stream.Collector) Session(jdk.incubator.sql2.Session) AfterClass(org.junit.AfterClass) Properties(java.util.Properties) JDBC_CONNECTION_PROPERTIES(com.oracle.adbaoverjdbc.JdbcConnectionProperties.JDBC_CONNECTION_PROPERTIES) AdbaType(jdk.incubator.sql2.AdbaType) Test(org.junit.Test) RowPublisherOperation(jdk.incubator.sql2.RowPublisherOperation) TransactionCompletion(jdk.incubator.sql2.TransactionCompletion) Date(java.sql.Date) TimeUnit(java.util.concurrent.TimeUnit) DataSource(jdk.incubator.sql2.DataSource) List(java.util.List) CompletionStage(java.util.concurrent.CompletionStage) Result(jdk.incubator.sql2.Result) RowCountOperation(jdk.incubator.sql2.RowCountOperation) ForkJoinPool(java.util.concurrent.ForkJoinPool) MultiOperation(jdk.incubator.sql2.MultiOperation) Assert(org.junit.Assert) Submission(jdk.incubator.sql2.Submission) DataSourceFactory(jdk.incubator.sql2.DataSourceFactory) MultiOperation(jdk.incubator.sql2.MultiOperation) RowCountOperation(jdk.incubator.sql2.RowCountOperation) DataSource(jdk.incubator.sql2.DataSource) Session(jdk.incubator.sql2.Session) Test(org.junit.Test)

Example 19 with DataSourceFactory

use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.

the class DataSourceFactoryTest method testBuilder.

/**
 * Assert DataSourceFactory.builder() returns a DataSource.Builder instance.
 */
@Test
public void testBuilder() {
    DataSourceFactory factory = DataSourceFactory.newFactory(getDataSourceFactoryName());
    DataSource.Builder builder = factory.builder();
    assertNotNull(builder);
}
Also used : DataSourceFactory(jdk.incubator.sql2.DataSourceFactory) DataSource(jdk.incubator.sql2.DataSource) Test(org.junit.Test)

Example 20 with DataSourceFactory

use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.

the class DataSourceFactoryTest method testNewFactory.

/**
 * Assert DataSourceFactory.newFactory(String) returns a DataSourceFactory
 * instance if the input is the name of a factory class.
 */
@Test
public void testNewFactory() {
    String name = getDataSourceFactoryName();
    DataSourceFactory factory = DataSourceFactory.newFactory(name);
    assertNotNull(factory);
    assertEquals(name, factory.getClass().getName());
}
Also used : DataSourceFactory(jdk.incubator.sql2.DataSourceFactory) Test(org.junit.Test)

Aggregations

DataSourceFactory (jdk.incubator.sql2.DataSourceFactory)28 DataSource (jdk.incubator.sql2.DataSource)24 Session (jdk.incubator.sql2.Session)22 Test (org.junit.Test)22 ForkJoinPool (java.util.concurrent.ForkJoinPool)14 TimeUnit (java.util.concurrent.TimeUnit)14 Collector (java.util.stream.Collector)14 ArrayList (java.util.ArrayList)12 SqlException (jdk.incubator.sql2.SqlException)12 List (java.util.List)10 CompletableFuture (java.util.concurrent.CompletableFuture)10 CompletionStage (java.util.concurrent.CompletionStage)10 Flow (java.util.concurrent.Flow)10 AdbaType (jdk.incubator.sql2.AdbaType)10 MultiOperation (jdk.incubator.sql2.MultiOperation)10 Result (jdk.incubator.sql2.Result)10 RowPublisherOperation (jdk.incubator.sql2.RowPublisherOperation)10 TransactionCompletion (jdk.incubator.sql2.TransactionCompletion)10 AfterClass (org.junit.AfterClass)10 Assert (org.junit.Assert)10