public static <T, K> Crud<T, K> newInstance( ClassMeta<T> target, ClassMeta<K> keyTarget, CrudMeta crudMeta, JdbcMapperFactory jdbcMapperFactory) throws SQLException { JdbcMapperFactory mapperFactory = JdbcMapperFactory.newInstance(jdbcMapperFactory); return createCrud(target, keyTarget, crudMeta, mapperFactory); }
@Override public ContextualSourceMapper<ResultSet, ?> newInstance(Class<?> aClass) { return JdbcMapperFactory.newInstance().newMapper(aClass); } };
@Override public ContextualSourceMapper<ResultSet, ?> newInstance(Type type) { return JdbcMapperFactory.newInstance().newMapper(type); } };
public JdbcTemplateCrud<T, K> to(JdbcOperations jdbcOperations) { final JdbcMapperFactory factory = JdbcMapperFactory.newInstance(jdbcTemplateMapperFactory); Crud<T, K> crud = jdbcOperations.execute(new ConnectionCallback<Crud<T, K>>() { @Override public Crud<T, K> doInConnection(Connection connection) throws SQLException, DataAccessException { return factory.<T, K>crud(target, keyTarget).to(connection); } }); return new JdbcTemplateCrud<T, K>(jdbcOperations, crud); }
@Test public void testDirectMeta() throws Exception { PreparedStatementMapperBuilder<DMClass> mapperBuilder = JdbcMapperFactory.newInstance().buildFrom(DMClass.class); mapperBuilder.addColumn("time"); FieldMapper<DMClass, PreparedStatement> mapper = mapperBuilder.mapper(); DMClass dmClass = new DMClass(); dmClass.setTime(new Date()); PreparedStatement ps = mock(PreparedStatement.class); mapper.mapTo(dmClass, ps, null); verify(ps).setTimestamp(1, new Timestamp(dmClass.getTime().getTime())); } @Test
@Test public void testMapSG() { JdbcMapperFactory.newInstance().addKeys("id").newMapper(MyPojo2.class); } }
@Test public void testMapConstructor() { JdbcMapperFactory.newInstance().addKeys("id").newMapper(MyPojo.class); } @Test
@Test public void testCustomGetterOnNonExistantProp() throws Exception { PreparedStatementMapperBuilder<Object> mapperBuilder = JdbcMapperFactory.newInstance() .addColumnProperty("text", new ConstantValueProperty<String>("value2", String.class)) .buildFrom(Object.class); mapperBuilder.addColumn("text"); FieldMapper<Object, PreparedStatement> mapper = mapperBuilder.mapper(); PreparedStatement ps = mock(PreparedStatement.class); mapper.mapTo(new Object(), ps, null); verify(ps).setString(1, "value2"); } }
@Test public void testGetterOnlyMethod() throws Exception { PreparedStatementMapperBuilder<DMClass> mapperBuilder = JdbcMapperFactory.newInstance().buildFrom(DMClass.class); mapperBuilder.addColumn("value"); FieldMapper<DMClass, PreparedStatement> mapper = mapperBuilder.mapper(); DMClass dmClass = new DMClass(); PreparedStatement ps = mock(PreparedStatement.class); mapper.mapTo(dmClass, ps, null); verify(ps).setString(1, "value"); }
@Test public void testDbObjectLazyCrud() throws SQLException { Connection connection = DbHelper.getDbConnection(targetDB); if (connection == null) { System.err.println("Db " + targetDB + " not available"); return; } try { Crud<DbObject, Long> objectCrud = JdbcMapperFactory.newInstance().<DbObject, Long>crud(DbObject.class, Long.class).table("TEST_DB_OBJECT"); checkCrudDbObject(connection, objectCrud, DbObject.newInstance()); } finally { connection.close(); } }
@Test public void testRename() throws Exception { PreparedStatementMapperBuilder<DMClass> mapperBuilder = JdbcMapperFactory.newInstance() .addAlias("val", "value") .buildFrom(DMClass.class); mapperBuilder.addColumn("val"); FieldMapper<DMClass, PreparedStatement> mapper = mapperBuilder.mapper(); DMClass dmClass = new DMClass(); PreparedStatement ps = mock(PreparedStatement.class); mapper.mapTo(dmClass, ps, null); verify(ps).setString(1, "value"); }
@Test public void testDbObjectCrud() throws SQLException { Connection connection = DbHelper.getDbConnection(targetDB); if (connection == null) { System.err.println("Db " + targetDB + " not available"); return; } try { Crud<DbObject, Long> objectCrud = JdbcMapperFactory.newInstance().<DbObject, Long>crud(DbObject.class, Long.class).table(connection, "TEST_DB_OBJECT"); checkCrudDbObject(connection, objectCrud, DbObject.newInstance()); } finally { connection.close(); } }
@Test public void jdbcMapperExtrapolateGetterFromConstructor() { JdbcMapperFactory.newInstance().newBuilder(FooC.class).addMapping("bar").mapper(); JdbcMapperFactory.newInstance().newBuilder(Crux.class).addMapping("foo").mapper(); }
@Test public void jdbcMapperExtrapolateGetterFromConstructor() throws Exception { final MultiIndexFieldMapper<Foo>[] fieldMappers = JdbcMapperFactory.newInstance().buildFrom(Foo.class).addColumn("bar").buildIndexFieldMappers(EmptyContextFactoryBuilder.INSTANCE); assertEquals(1, fieldMappers.length); PreparedStatement ps = mock(PreparedStatement.class); fieldMappers[0].map(ps, new Foo(new BarOneProp("val")), 0, EmptyContext.INSTANCE); verify(ps).setString(1, "val"); JdbcMapperFactory.newInstance().buildFrom(Crux.class).addColumn("foo").buildIndexFieldMappers(EmptyContextFactoryBuilder.INSTANCE); }
@Test public void testDbObjectLazyCrudTable() throws SQLException { Connection connection = DbHelper.getDbConnection(targetDB); if (connection == null) { System.err.println("Db " + targetDB + " not available"); return; } try { Crud<DbObjectTable, Long> objectCrud = JdbcMapperFactory.newInstance().<DbObjectTable, Long>crud(DbObjectTable.class, Long.class).crud(); checkCrudDbObject(connection, objectCrud, DbObject.newInstance(new DbObjectTable())); } finally { connection.close(); } }
@Test public void testDbObjectCrudTable() throws SQLException { Connection connection = DbHelper.getDbConnection(targetDB); if (connection == null) { System.err.println("Db " + targetDB + " not available"); return; } try { Crud<DbObjectTable, Long> objectCrud = JdbcMapperFactory.newInstance().<DbObjectTable, Long>crud(DbObjectTable.class, Long.class).to(connection); checkCrudDbObject(connection, objectCrud, DbObject.newInstance(new DbObjectTable())); } finally { connection.close(); } }
@Test public void testDbObjectCrudTestDbObject() throws SQLException { Connection connection = DbHelper.getDbConnection(targetDB); if (connection == null) { System.err.println("Db " + targetDB + " not available"); return; } try { Crud<TestDbObject, Long> objectCrud = JdbcMapperFactory.newInstance().<TestDbObject, Long>crud(TestDbObject.class, Long.class).to(connection); checkCrudDbObject(connection, objectCrud, DbObject.newInstance(new TestDbObject())); } finally { connection.close(); } }
@Test public void jdbcMapperGetterNotFound() { try { JdbcMapperFactory.newInstance().newBuilder(Foo2.class).addKey("bar").mapper(); fail(); } catch(MapperBuildingException e) { // assertTrue(e.getMessage().contains("CSFM_GETTER")); // expected } }
@Test public void jdbcMapperExtrapolateFailToFindSetter() { try { final MultiIndexFieldMapper<Foo2>[] indexFieldMappers = JdbcMapperFactory.newInstance().buildFrom(Foo2.class).addColumn("bar").buildIndexFieldMappers(EmptyContextFactoryBuilder.INSTANCE); fail(); } catch (MapperBuildingException e) { // expected } }
@Test public void test544() { final String VALUES_VAL = "values_val"; final String VALUES = "values"; JdbcColumnKey valuesKeys = new JdbcColumnKey(VALUES, 1, Types.VARCHAR); JdbcMapperFactory .newInstance() .addAlias(VALUES, VALUES_VAL) .newBuilder(C544.class) .addMapping(valuesKeys) .mapper(); }