Class JdbcBeanDefinitionReader
- java.lang.Object
- org.springframework.jdbc.core.support.JdbcBeanDefinitionReader
public class JdbcBeanDefinitionReader extends Object
Bean definition reader that reads values from a database table, based on a given SQL statement.Expects columns for bean name, property name and value as String. Formats for each are identical to the properties format recognized by PropertiesBeanDefinitionReader.
NOTE: This is mainly intended as an example for a custom JDBC-based bean definition reader. It does not aim to offer comprehensive functionality.
- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
loadBeanDefinitions(java.lang.String)
,PropertiesBeanDefinitionReader
Constructor Summary
Constructors Constructor Description JdbcBeanDefinitionReader(BeanDefinitionRegistry beanFactory)
Create a new JdbcBeanDefinitionReader for the given bean factory, using a default PropertiesBeanDefinitionReader underneath.JdbcBeanDefinitionReader(PropertiesBeanDefinitionReader beanDefinitionReader)
Create a new JdbcBeanDefinitionReader that delegates to the given PropertiesBeanDefinitionReader underneath.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
loadBeanDefinitions(String sql)
Load bean definitions from the database via the given SQL string.void
setDataSource(DataSource dataSource)
Set the DataSource to use to obtain database connections.void
setJdbcTemplate(JdbcTemplate jdbcTemplate)
Set the JdbcTemplate to be used by this bean factory.
Constructor Detail
JdbcBeanDefinitionReader
public JdbcBeanDefinitionReader(BeanDefinitionRegistry beanFactory)
Create a new JdbcBeanDefinitionReader for the given bean factory, using a default PropertiesBeanDefinitionReader underneath.DataSource or JdbcTemplate still need to be set.
JdbcBeanDefinitionReader
public JdbcBeanDefinitionReader(PropertiesBeanDefinitionReader beanDefinitionReader)
Create a new JdbcBeanDefinitionReader that delegates to the given PropertiesBeanDefinitionReader underneath.DataSource or JdbcTemplate still need to be set.
Method Detail
setDataSource
public void setDataSource(DataSource dataSource)
Set the DataSource to use to obtain database connections. Will implicitly create a new JdbcTemplate with the given DataSource.
setJdbcTemplate
public void setJdbcTemplate(JdbcTemplate jdbcTemplate)
Set the JdbcTemplate to be used by this bean factory. Contains settings for DataSource, SQLExceptionTranslator, etc.
loadBeanDefinitions
public void loadBeanDefinitions(String sql)
Load bean definitions from the database via the given SQL string.- Parameters:
sql
- the SQL query to use for loading bean definitions. The first three columns must be bean name, property name and value. Any join and any other columns are permitted: e.g.SELECT BEAN_NAME, PROPERTY, VALUE FROM CONFIG WHERE CONFIG.APP_ID = 1
It's also possible to perform a join. Column names are not significant -- only the ordering of these first three columns.