org.springframework.jdbc.core.support

## 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 and 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

    Methods
    Modifier and Type | Method and 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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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.

      See Also:
        `setDataSource(javax.sql.DataSource)`, `setJdbcTemplate(org.springframework.jdbc.core.JdbcTemplate)`

    - #### JdbcBeanDefinitionReader

          public JdbcBeanDefinitionReader(PropertiesBeanDefinitionReader beanDefinitionReader)

      Create a new JdbcBeanDefinitionReader that delegates to the given PropertiesBeanDefinitionReader underneath.

      DataSource or JdbcTemplate still need to be set.

      See Also:
        `setDataSource(javax.sql.DataSource)`, `setJdbcTemplate(org.springframework.jdbc.core.JdbcTemplate)`

  - ### 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, NativeJdbcExtractor, etc.

    - #### loadBeanDefinitions

          public void loadBeanDefinitions(String sql)

      Load bean definitions from the database via the given SQL string.
      Parameters:
        `sql` - 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.