/** * Static factory method to create a new {@code BeanPropertyRowMapper} * (with the mapped class specified only once). * @param mappedClass the class that each row should be mapped to */ public static <T> BeanPropertyRowMapper<T> newInstance(Class<T> mappedClass) { return new BeanPropertyRowMapper<>(mappedClass); }
/** * 获取对象集合信息 */ public <T> List<T> queryForObjectList(String sql, Class<T> clazz, Object... args) { Assert.hasText(sql, "sql 语句不能为空"); return jdbcTemplate.query(sql, args, new BeanPropertyRowMapper<T>(clazz)); }
/** * 获取对象集合信息 */ public <T> List<T> queryForObjectList(String sql, Class<T> clazz, Object... args) { Assert.hasText(sql, "sql 语句不能为空"); return jdbcTemplate.query(sql, args, new BeanPropertyRowMapper<T>(clazz)); }
/** * 获取对象集合信息 */ public <T> List<T> queryForObjectList(String sql, Class<T> clazz, Object... args) { Assert.hasText(sql, "sql 语句不能为空"); return jdbcTemplate.query(sql, args, new BeanPropertyRowMapper<T>(clazz)); }
/** * 获取对象信息 */ public <T> T queryForObject(String sql, Class<T> clazz, Object... args) { Assert.hasText(sql, "sql 语句不能为空"); return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<T>(clazz), args); }
/** * 获取对象信息 */ public <T> T queryForObject(String sql, Class<T> clazz, Object... args) { Assert.hasText(sql, "sql 语句不能为空"); return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<T>(clazz), args); }
/** * 获取对象集合信息 */ public <T> List<T> queryForObjectList(String sql, Class<T> clazz, Object... args) { Assert.hasText(sql, "sql 语句不能为空"); return jdbcTemplate.query(sql, args, new BeanPropertyRowMapper<T>(clazz)); }
/** * 获取对象集合信息 */ public <T> List<T> queryForObjectList(String sql, Class<T> clazz, Object... args) { Assert.hasText(sql, "sql 语句不能为空"); return jdbcTemplate.query(sql, args, new BeanPropertyRowMapper<T>(clazz)); }
/** * 获取对象信息 */ public <T> T queryForObject(String sql, Class<T> clazz, Object... args) { Assert.hasText(sql, "sql 语句不能为空"); return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<T>(clazz), args); }
/** * 获取对象集合信息 */ public <T> List<T> queryForObjectList(String sql, Class<T> clazz, Object... args) { Assert.hasText(sql, "sql 语句不能为空"); return jdbcTemplate.query(sql, args, new BeanPropertyRowMapper<T>(clazz)); }
@Test public void testOverridingSameClassDefinedForMapping() { BeanPropertyRowMapper<Person> mapper = new BeanPropertyRowMapper<>(Person.class); mapper.setMappedClass(Person.class); }
@Test @SuppressWarnings({ "unchecked", "rawtypes" }) public void testOverridingDifferentClassDefinedForMapping() { BeanPropertyRowMapper mapper = new BeanPropertyRowMapper(Person.class); thrown.expect(InvalidDataAccessApiUsageException.class); mapper.setMappedClass(Long.class); }
@Test public void testStaticQueryWithRowMapper() throws Exception { Mock mock = new Mock(); List<Person> result = mock.getJdbcTemplate().query( "select name, age, birth_date, balance from people", new BeanPropertyRowMapper<>(Person.class)); assertEquals(1, result.size()); verifyPerson(result.get(0)); mock.verifyClosed(); }
@Test public void testQueryWithSpaceInColumnNameAndLocalDate() throws Exception { Mock mock = new Mock(MockType.THREE); List<DatePerson> result = mock.getJdbcTemplate().query( "select last_name as \"Last Name\", age, birth_date, balance from people", new BeanPropertyRowMapper<>(DatePerson.class)); assertEquals(1, result.size()); verifyPerson(result.get(0)); mock.verifyClosed(); }
@Test public void testMappingWithUnpopulatedFieldsNotChecked() throws Exception { Mock mock = new Mock(); List<ExtendedPerson> result = mock.getJdbcTemplate().query( "select name, age, birth_date, balance from people", new BeanPropertyRowMapper<>(ExtendedPerson.class)); assertEquals(1, result.size()); ExtendedPerson bean = result.get(0); verifyPerson(bean); mock.verifyClosed(); }
@Test public void testMappingWithInheritance() throws Exception { Mock mock = new Mock(); List<ConcretePerson> result = mock.getJdbcTemplate().query( "select name, age, birth_date, balance from people", new BeanPropertyRowMapper<>(ConcretePerson.class)); assertEquals(1, result.size()); verifyPerson(result.get(0)); mock.verifyClosed(); }
@Test public void testMappingWithNoUnpopulatedFieldsFound() throws Exception { Mock mock = new Mock(); List<ConcretePerson> result = mock.getJdbcTemplate().query( "select name, age, birth_date, balance from people", new BeanPropertyRowMapper<>(ConcretePerson.class, true)); assertEquals(1, result.size()); verifyPerson(result.get(0)); mock.verifyClosed(); }
@Test public void testMappingWithUnpopulatedFieldsNotAccepted() throws Exception { Mock mock = new Mock(); thrown.expect(InvalidDataAccessApiUsageException.class); mock.getJdbcTemplate().query( "select name, age, birth_date, balance from people", new BeanPropertyRowMapper<>(ExtendedPerson.class, true)); }
@Test public void testMappingNullValue() throws Exception { BeanPropertyRowMapper<Person> mapper = new BeanPropertyRowMapper<>(Person.class); Mock mock = new Mock(MockType.TWO); thrown.expect(TypeMismatchException.class); mock.getJdbcTemplate().query( "select name, null as age, birth_date, balance from people", mapper); }
@Test public void testQueryWithSpaceInColumnNameAndLocalDateTime() throws Exception { Mock mock = new Mock(MockType.THREE); List<SpacePerson> result = mock.getJdbcTemplate().query( "select last_name as \"Last Name\", age, birth_date, balance from people", new BeanPropertyRowMapper<>(SpacePerson.class)); assertEquals(1, result.size()); verifyPerson(result.get(0)); mock.verifyClosed(); }