spring配置文件中jdbc:initialize-database標籤的研究

在spring的applicationContext.xml中若是引入了:
<beans xmlns="http://www.springframework.org/schema/beans" 
		xmlns:sec="http://www.springframework.org/schema/security"
		xmlns:task="http://www.springframework.org/schema/task"
		xmlns:aop="http://www.springframework.org/schema/aop" 
		xmlns:context="http://www.springframework.org/schema/context" 
		xmlns:jee="http://www.springframework.org/schema/jee" 
		xmlns:tx="http://www.springframework.org/schema/tx" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xmlns:jdbc="http://www.springframework.org/schema/jdbc"
		xsi:schemaLocation="http://www.springframework.org/schema/aop 
			http://www.springframework.org/schema/aop/spring-aop-4.0.xsd         
			http://www.springframework.org/schema/beans 
			http://www.springframework.org/schema/beans/spring-beans-4.0.xsd         
			http://www.springframework.org/schema/context 
			http://www.springframework.org/schema/context/spring-context-4.0.xsd         
			http://www.springframework.org/schema/jee 
			http://www.springframework.org/schema/jee/spring-jee-4.0.xsd         
			http://www.springframework.org/schema/tx 
			http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
			http://www.springframework.org/schema/task 
			http://www.springframework.org/schema/task/spring-task-4.0.xsd
        	http://www.springframework.org/schema/jdbc
        	http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd">



        整體來講就是引入了jdbc的schema。那麼咱們就能夠用jdbc標籤了,本文只說<jdbc:initialize-database>標籤。
先給一個例子,再借例子加以說明。
例子:
<jdbc:initialize-database data-source="dataSource" ignore-failures="NONE" enabled="${jdbc.initializedatabase}">
<jdbc:script encoding="utf-8" location="/WEB-INF/db-init.sql"/>
</jdbc:initialize-database>



        jdbc:initialize-database這個標籤的做用是在工程啓動時,去執行一些sql,也就是初始化數據庫。好比向數據庫中創建一些表及插入一些初始數據等。這些sql的路徑須要在其子標籤jdbc:script中去指定。

        1.jdbc:initialize-database標籤

        a.dataSource不用說,要引一個配置好的數據源。
        b.ignore-failures有三個值:NONE,DROPS,ALL,設置爲NONE時,不忽略任何錯誤,也就是說,當sql執行報錯時服務啓動 終止。設置爲DROPS時,忽略刪除錯誤,如當sql中有一個刪除表drop table d_area的sql,而d_area表不存在,此時這個錯誤會被忽略。設置爲ALL時,忽略任何錯誤。
        c.enabled是用來代表初始化數據庫是否執行。這個頗有用,通常初始化一次就夠了,第二次之後就不必了,除了特殊狀況。這個enabled的值是 一個boolean值。設置方法有三。一是直接寫true或false;二是根據配置文件某個值來設置,本文用的是這個。
<bean id="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>WEB-INF/db.properties</value>
</list>
</property>
</bean>



        設置enabled="${jdbc.initializedatabase}"後,會到properties中去獲取key爲 jdbc.initializedatabase的值。三是這樣設置:enabled="# {systemProperties.INITIALIZE_DATABASE}",這樣設置後,會到你所設置的dataSource中去找 property名字爲systemProperties.INITIALIZE_DATABASE的值或prop key爲systemProperties.INITIALIZE_DATABASE的值。

        2.jdbc:initialize-database這個標籤必須要至少包含一個<jdbc:script>

        這個標籤是來指定你要初始化 數據庫的sql的路徑。如:location="/WEB-INF/db-init.sql"/;location="classpath:com /sql/db-init.sql"。encoding是指明字符集。 spring

相關文章
相關標籤/搜索