Windows批處理切換jdbc配置文件

Java Web 開發(fā)中經(jīng)常要切換數(shù)據(jù)庫,還比較頻繁。每切換一次就要重新配置一次 jdbc.properites 實(shí)在是麻煩。當(dāng)然,maven支持多種配置,但是,速度太慢,切換一下得刷新一會(huì)兒。通過批處理的方式就快多了。

先看下 jdbc.properties 的內(nèi)容

# 
#Copyright ? 2017 NPKW
#  
jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver  
jdbc.url=jdbc:sqlserver://localhost;DatabaseName=Database  
jdbc.username=sa 
jdbc.password=password

前三行是注釋,真正有用的是后面的4行。以切換本地的數(shù)據(jù)庫與服務(wù)端的數(shù)據(jù)庫為例,jdbc.properties 中的區(qū)別只是最后的三行。很自然的想到,只要能把最后的三行替換掉就行了。順著這個(gè)思路,用批處理腳本,替換掉最后三行。實(shí)際操作的時(shí)候發(fā)現(xiàn),要控制讀取替換具體的某一行還是比較麻煩的操作。

考慮這個(gè)文件只有幾行,可以直接將其全部覆蓋。只需要將每次的配置用批處理輸出到配置文件就可以了。

@echo off
SETLOCAL

set Comment=#
set Copyright=Copyright ? 2017 NPKW
set Driver=jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
set LocalHost=jdbc.url=jdbc:sqlserver://localhost;DatabaseName=Database
set UserName=jdbc.username=sa
set Password=jdbc.password=password

(echo %Comment% & echo %Comment%%Copyright%  & echo %Comment%  & echo %Driver%  & echo %LocalHost%  & echo %UserName% & echo %Password%) > jdbc.properties

SETLOCAL 的意思是腳本中定義的變量,只在當(dāng)前會(huì)話中有效,腳本執(zhí)行完成之后,變量就會(huì)被釋放掉。為了不污染系統(tǒng)的環(huán)境變量,最好先使用 SETLOCAL。 然后,把將要組合的文本存儲(chǔ)在各個(gè)變量中。 最后拼接各個(gè)變量輸出到j(luò)dbc.properties。注意使用 > 符號是覆蓋, >> 是追加。兩個(gè)取出的字符不需要任何連接符,比如 %Comment%%Copyright%。

回過頭來看,批處理的變量的使用方式, 不需要聲明,又有點(diǎn)像 T-SQL 語法。而且通過 /A 參數(shù),可以用一個(gè)表達(dá)式初始化一個(gè)變量。例如: set /a sum=1+1 , sum 的值為2。 特別注意的地方,默認(rèn)初始化變量, = 兩邊不要有空格。 例如 set b = 1 ,用 echo %b% 輸出得到是 %b% 而不是 1。

一開始曾想用 Powershell 去做,Powershell 非常的強(qiáng)大,幾乎支持 .NET 的所有操作,但是 IDEA Intelij 不支持 Powershell 直接運(yùn)行, 而且 Powershell 有多個(gè)版本,新的機(jī)器支持,老的機(jī)器或許就不支持了。 批處理腳本則不一樣,雖然功能看起來弱了些,但是非常的穩(wěn)定,兼容性也非常好,現(xiàn)在市面上的 Windows 系統(tǒng)都能夠支持它。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容