Package org.apache.metamodel.jdbc

Examples of org.apache.metamodel.jdbc.JdbcDataContext


        assertFalse(ds.next());
        ds.close();
    }

    public void testMaxRowsAndOffset() throws Exception {
        JdbcDataContext dc = new JdbcDataContext(_connection);
        Schema schema = dc.getDefaultSchema();
        String[] tableNames = schema.getTableNames();
        System.out.println("Tables: " + Arrays.toString(tableNames));

        Table countryTable = schema.getTableByName("COUNTRY");
        assertNotNull(countryTable);

        Query query = dc.query().from(countryTable).select("COUNTRYCODE").limit(200).offset(200).toQuery();
        assertEquals(
                "SELECT metamodel_subquery.\"COUNTRYCODE\" FROM ("
                        + "SELECT DB2INST1.\"COUNTRY\".\"COUNTRYCODE\", ROW_NUMBER() OVER() AS metamodel_row_number FROM DB2INST1.\"COUNTRY\""
                        + ") metamodel_subquery WHERE metamodel_row_number BETWEEN 201 AND 400", dc.getQueryRewriter()
                        .rewriteQuery(query));

        DataSet ds = dc.executeQuery(query);
        for (int i = 0; i < 200; i++) {
            assertTrue(ds.next());
            assertEquals(1, ds.getRow().getValues().length);
        }
        assertFalse(ds.next());
View Full Code Here


    super.tearDown();
    _connection.close();
  }

  public void testQueryUsingExpressions() throws Exception {
    JdbcDataContext strategy = new JdbcDataContext(_connection,
        new TableType[] { TableType.TABLE, TableType.VIEW }, _databaseName);
    Query q = new Query().select("Name").from("Production.Product").where("COlor IS NOT NULL").setMaxRows(5);
    DataSet dataSet = strategy.executeQuery(q);
    assertEquals("[Name]", Arrays.toString(dataSet.getSelectItems()));
    assertTrue(dataSet.next());
    assertEquals("Row[values=[LL Crankarm]]", dataSet.getRow().toString());
    assertTrue(dataSet.next());
    assertTrue(dataSet.next());
View Full Code Here

    assertTrue(dataSet.next());
    assertFalse(dataSet.next());
  }

  public void testGetSchemaNormalTableTypes() throws Exception {
    JdbcDataContext dc = new JdbcDataContext(_connection, new TableType[] { TableType.TABLE, TableType.VIEW },
        _databaseName);
    Schema[] schemas = dc.getSchemas();

    assertEquals(8, schemas.length);
    assertEquals("Schema[name=HumanResources]", schemas[0].toString());
    assertEquals(13, schemas[0].getTableCount());
    assertEquals("Schema[name=INFORMATION_SCHEMA]", schemas[1].toString());
View Full Code Here

    assertEquals(27, schemas[5].getTableCount());

  }

  public void testGetSchemaAllTableTypes() throws Exception {
    JdbcDataContext strategy = new JdbcDataContext(_connection, new TableType[] { TableType.OTHER,
        TableType.GLOBAL_TEMPORARY }, _databaseName);

    assertEquals("[Sales, HumanResources, dbo, Purchasing, sys, Production, INFORMATION_SCHEMA, Person]",
        Arrays.toString(strategy.getSchemaNames()));

    assertEquals("Schema[name=dbo]", strategy.getDefaultSchema().toString());
  }
View Full Code Here

    assertEquals("Schema[name=dbo]", strategy.getDefaultSchema().toString());
  }

  public void testQueryRewriterQuoteAliases() throws Exception {
    JdbcDataContext strategy = new JdbcDataContext(_connection, TableType.DEFAULT_TABLE_TYPES, _databaseName);
    IQueryRewriter queryRewriter = strategy.getQueryRewriter();
    assertSame(SQLServerQueryRewriter.class, queryRewriter.getClass());

    Schema schema = strategy.getSchemaByName("Sales");
    Table customersTable = schema.getTableByName("CUSTOMER");

    Query q = new Query().from(customersTable, "cus-tomers").select(
        new SelectItem(customersTable.getColumnByName("AccountNumber")).setAlias("c|o|d|e"));
    q.setMaxRows(5);

    assertEquals("SELECT cus-tomers.\"AccountNumber\" AS c|o|d|e FROM Sales.\"Customer\" cus-tomers", q.toString());

    String queryString = queryRewriter.rewriteQuery(q);
    assertEquals(
        "SELECT TOP 5 \"cus-tomers\".\"AccountNumber\" AS \"c|o|d|e\" FROM Sales.\"Customer\" \"cus-tomers\"",
        queryString);

    // We have to test that no additional quoting characters are added every
    // time we run the rewriting
    queryString = queryRewriter.rewriteQuery(q);
    queryString = queryRewriter.rewriteQuery(q);
    assertEquals(
        "SELECT TOP 5 \"cus-tomers\".\"AccountNumber\" AS \"c|o|d|e\" FROM Sales.\"Customer\" \"cus-tomers\"",
        queryString);

    // Test that the original query is still the same (ie. it has been
    // cloned for execution)
    assertEquals("SELECT cus-tomers.\"AccountNumber\" AS c|o|d|e FROM Sales.\"Customer\" cus-tomers", q.toString());

    DataSet data = strategy.executeQuery(q);
    assertNotNull(data);
    data.close();
  }
View Full Code Here

    assertNotNull(data);
    data.close();
  }

  public void testQuotedString() throws Exception {
    JdbcDataContext dc = new JdbcDataContext(_connection, TableType.DEFAULT_TABLE_TYPES, _databaseName);
    IQueryRewriter queryRewriter = dc.getQueryRewriter();
    assertSame(SQLServerQueryRewriter.class, queryRewriter.getClass());

    Query q = dc.query().from("Production", "Product").select("Name").where("Color").eq("R'ed").toQuery();

    assertEquals(
        "SELECT \"Product\".\"Name\" FROM Production.\"Product\" Product WHERE Product.\"Color\" = 'R''ed'",
        queryRewriter.rewriteQuery(q));
  }
View Full Code Here

    public void testInterpretationOfNull() throws Exception {
        JdbcTestTemplates.interpretationOfNulls(_connection);
    }

    private JdbcDataContext createLimitAndOffsetTestData() {
        final JdbcDataContext dc = new JdbcDataContext(_connection);

        if (dc.getTableByQualifiedLabel("test_table") != null) {
            dc.executeUpdate(new UpdateScript() {
                @Override
                public void run(UpdateCallback callback) {
                    callback.dropTable("test_table").execute();
                }
            });
        }

        dc.executeUpdate(new UpdateScript() {
            @Override
            public void run(UpdateCallback callback) {
                Table table = callback.createTable(dc.getDefaultSchema(), "test_table").withColumn("foo")
                        .ofType(ColumnType.INTEGER).withColumn("bar").ofType(ColumnType.VARCHAR).execute();
                callback.insertInto(table).value("foo", 1).value("bar", "hello").execute();
                callback.insertInto(table).value("foo", 2).value("bar", "there").execute();
                callback.insertInto(table).value("foo", 3).value("bar", "world").execute();
            }
        });

        dc.refreshSchemas();

        return dc;
    }
View Full Code Here

        return dc;
    }

    public void testLimit() throws Exception {
        JdbcDataContext dc = createLimitAndOffsetTestData();
        Schema schema = dc.getDefaultSchema();
        Table productsTable = schema.getTableByName("test_table");

        DataSet ds = dc.query().from(productsTable).select("foo").limit(2).execute();
        assertTrue(ds.next());
        assertEquals("Row[values=[1]]", ds.getRow().toString());
        assertTrue(ds.next());
        assertEquals("Row[values=[2]]", ds.getRow().toString());
        assertFalse(ds.next());
View Full Code Here

        assertFalse(ds.next());
        ds.close();
    }

    public void testOffset() throws Exception {
        JdbcDataContext dc = createLimitAndOffsetTestData();
        Schema schema = dc.getDefaultSchema();
        Table productsTable = schema.getTableByName("test_table");

        DataSet ds = dc.query().from(productsTable).select("foo").offset(1).execute();
        assertTrue(ds.next());
        assertEquals("Row[values=[2]]", ds.getRow().toString());
        assertTrue(ds.next());
        assertEquals("Row[values=[3]]", ds.getRow().toString());
        assertFalse(ds.next());
View Full Code Here

     * @param connection
     *            a JDBC connection
     * @return a DataContext object that matches the request
     */
    public static UpdateableDataContext createJdbcDataContext(Connection connection) {
        return new JdbcDataContext(connection);
    }
View Full Code Here

TOP

Related Classes of org.apache.metamodel.jdbc.JdbcDataContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.