Package org.apache.metamodel.jdbc

Examples of org.apache.metamodel.jdbc.JdbcDataContext


  }

  public void testWorkingWithDates() throws Exception {
    assertFalse(_connection.isReadOnly());

    JdbcDataContext dc = new JdbcDataContext(_connection);
    final Schema schema = dc.getSchemaByName("Person");

    JdbcTestTemplates.createInsertAndUpdateDateTypes(dc, schema, "test_table");
  }
View Full Code Here


      // do nothing
    }

    assertFalse(_connection.isReadOnly());

    JdbcDataContext dc = new JdbcDataContext(_connection);
    final Schema schema = dc.getSchemaByName("Person");
    assertEquals("Person", schema.getName());

    dc.executeUpdate(new UpdateScript() {
      @Override
      public void run(UpdateCallback cb) {
        Table table = cb.createTable(schema, "test_table").withColumn("id").asPrimaryKey()
            .ofType(ColumnType.INTEGER).withColumn("birthdate").ofType(ColumnType.DATE).execute();

        cb.insertInto(table).value("id", "1").execute();
        cb.insertInto(table).value("id", 2).value("birthdate", "2011-12-21").execute();
      }
    });

    Table table = schema.getTableByName("test_table");

    assertTrue(table.getColumnByName("id").isPrimaryKey());
    assertFalse(table.getColumnByName("birthdate").isPrimaryKey());

    // the jdbc driver represents the date as a VARCHAR
    assertEquals(
        "[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=int,columnSize=10], "
            + "Column[name=birthdate,columnNumber=1,type=VARCHAR,nullable=true,nativeType=date,columnSize=10]]",
        Arrays.toString(table.getColumns()));

    DataSet ds = dc.query().from(table).select("id").and("birthdate").execute();
    assertTrue(ds.next());
    assertEquals("Row[values=[1, null]]", ds.getRow().toString());
    assertEquals("java.lang.Integer", ds.getRow().getValue(0).getClass().getName());
    assertTrue(ds.next());
    assertEquals("Row[values=[2, 2011-12-21]]", ds.getRow().toString());
View Full Code Here

    _connection.createStatement().execute("DROP TABLE Person.test_table");
  }

  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);
    Schema schema = strategy.getDefaultSchema();
    assertEquals("dbo", schema.getName());

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

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

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

    Schema schema = dc.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 = dc.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();
   
    DataSet ds = dc.executeQuery(q);
    assertNotNull(ds);
    assertFalse(ds.next());
    ds.close();

    assertEquals(
View Full Code Here

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

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

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

        ds.close();
View Full Code Here

            _connection.createStatement().execute("DROP TABLE my_table");
        } catch (Exception e) {
            // do nothing
        }

        JdbcDataContext dc = new JdbcDataContext(_connection);
        final Schema schema = dc.getDefaultSchema();

        // create table
        dc.executeUpdate(new UpdateScript() {
            @Override
            public void run(UpdateCallback cb) {
                Table table = cb.createTable(schema, "my_table").withColumn("id").asPrimaryKey()
                        .ofType(ColumnType.INTEGER).ofNativeType("SERIAL").nullable(false).withColumn("name")
                        .ofType(ColumnType.VARCHAR).ofSize(10).withColumn("foo").ofType(ColumnType.BOOLEAN)
                        .nullable(true).withColumn("bar").ofType(ColumnType.BOOLEAN).nullable(true).execute();

                assertEquals("my_table", table.getName());
            }
        });

        assertTrue(dc.getColumnByQualifiedLabel("my_table.id").isPrimaryKey());
        assertFalse(dc.getColumnByQualifiedLabel("my_table.name").isPrimaryKey());

        // insert records
        dc.executeUpdate(new UpdateScript() {
            @Override
            public void run(UpdateCallback callback) {
                RowInsertionBuilder builder = callback.insertInto("my_table").value("name", "row 1").value("foo", true);

                try {
                    Method method = builder.getClass().getDeclaredMethod("createSqlStatement");
                    method.setAccessible(true);
                    Object result = method.invoke(builder);
                    assertEquals("INSERT INTO \"public\".\"my_table\" (name,foo) VALUES (?,?)", result.toString());
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }

                builder.execute();

                callback.insertInto("my_table").value("name", "row 2").value("foo", false).execute();
            }
        });

        // query
        DataSet ds = dc.query().from("my_table").select("name").where("foo").eq(true).execute();
        assertTrue(ds.next());
        assertEquals("Row[values=[row 1]]", ds.getRow().toString());
        assertFalse(ds.next());
        ds.close();

        // drop
        dc.executeUpdate(new UpdateScript() {

            @Override
            public void run(UpdateCallback callback) {
                callback.dropTable("my_table").execute();
            }
View Full Code Here

            _connection.createStatement().execute("DROP TABLE my_table");
        } catch (Exception e) {
            // do nothing
        }

        JdbcDataContext dc = new JdbcDataContext(_connection);
        final Schema schema = dc.getDefaultSchema();

        dc.executeUpdate(new UpdateScript() {
            @Override
            public void run(UpdateCallback cb) {
                Table table = cb.createTable(schema, "my_table").withColumn("id").ofType(ColumnType.INTEGER)
                        .ofNativeType("SERIAL").nullable(false).withColumn("name").ofType(ColumnType.VARCHAR)
                        .ofSize(10).withColumn("foo").ofType(ColumnType.BOOLEAN).nullable(true).withColumn("bar")
                        .ofType(ColumnType.BOOLEAN).nullable(true).execute();

                assertEquals("my_table", table.getName());
            }
        });

        try {
            dc.executeUpdate(new UpdateScript() {
                @Override
                public void run(UpdateCallback callback) {
                    callback.insertInto("my_table").value("name", "row 1").value("foo", true).execute();

                    callback.insertInto("my_table").value("name", "row 2").value("bar", true).execute();

                    callback.insertInto("my_table").value("name", "row 3").value("foo", true).execute();

                    callback.insertInto("my_table").value("name", "row 4").value("foo", true).execute();

                    callback.insertInto("my_table").value("name", "row 5").value("bar", true).execute();

                    callback.insertInto("my_table").value("name", "row 6").value("foo", true).value("bar", true)
                            .execute();

                    callback.insertInto("my_table").value("name", "row 7").value("foo", true).value("bar", true)
                            .execute();

                    callback.insertInto("my_table").value("name", "row 8").value("foo", false).value("bar", false)
                            .execute();
                }
            });

            DataSet ds = dc.query().from("my_table").select("id").and("name").execute();
            assertTrue(ds.next());
            assertEquals("Row[values=[1, row 1]]", ds.getRow().toString());
            assertTrue(ds.next());
            assertEquals("Row[values=[2, row 2]]", ds.getRow().toString());
            assertTrue(ds.next());
            assertEquals("Row[values=[3, row 3]]", ds.getRow().toString());
            assertTrue(ds.next());
            assertEquals("Row[values=[4, row 4]]", ds.getRow().toString());
            assertTrue(ds.next());
            assertEquals("Row[values=[5, row 5]]", ds.getRow().toString());
            assertTrue(ds.next());
            assertEquals("Row[values=[6, row 6]]", ds.getRow().toString());
            assertTrue(ds.next());
            assertEquals("Row[values=[7, row 7]]", ds.getRow().toString());
            assertTrue(ds.next());
            assertEquals("Row[values=[8, row 8]]", ds.getRow().toString());
            assertFalse(ds.next());
            ds.close();
        } finally {
            dc.executeUpdate(new UpdateScript() {
                @Override
                public void run(UpdateCallback callback) {
                    callback.dropTable("my_table").execute();
                }
            });
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.