Oracle11 DataBase
2 つの列 (KEY(varchar2)
、 )を持つテーブルがありますPROPERTY(varchar2)
。- Spring フレームワークを使用して、コンテンツ全体 (すべての行) をテーブルから Spring Bean にロードして、常にDataBaseから値を取得する代わりに Bean を使用できるようにします。
- Bean クラス "
org.apache.commons.configuration.DatabaseConfiguration
" を使用しました。正常に動作していますが、この Bean クラスには、テーブルのコンテンツ全体をロードする機能がありません。
PFB、私の Spring-config.xml:
<bean name="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties" ref="commonsConfigurationFactoryBean"/>
</bean>
<bean name="commonsConfigurationFactoryBean"
class="org.springmodules.commons.configuration.CommonsConfigurationFactoryBean">
<constructor-arg ref="databaseConfiguration"/>
</bean>
<bean name="databaseConfiguration"
class="org.apache.commons.configuration.DatabaseConfiguration">
<constructor-arg type="javax.sql.DataSource" ref="dataSource"/>
<constructor-arg type="java.lang.String" index="1" value="schema.Table_Name1"/>
<constructor-arg type="java.lang.String" index="2" value="KEY"/>
<constructor-arg type="java.lang.String" index="3" value="PROPERTY"/>
</bean>
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:SYSTEM_NS:PORT:sid"/>
<property name="username" value="xxxx"/>
<property name="password" value="xxxx"/>
</bean>
Java コード:
ApplicationContext classpathCtx = new ClassPathXmlApplicationContext("Spring-config.xml");
DatabaseConfiguration dBConfig = (DatabaseConfiguration)classpathCtx.getBean("databaseConfiguration");
// To display the value in the property column by sending the value of column KEY
System.out.println(dBConfig.getProperty("Value in the KEY column"));
上記のコードは正常に動作しています。しかし、キーを送信するたびに、DatabaseConfiguration
内部的にDataBase呼び出しを行って、発生したくないプロパティを取得しています。
上記の概念全体は、.properties に存在するすべてのデータを DB に格納し、それを DB から Java コードにフェッチすることに関するものです。