URL中獲取ServerName

 這兩天,在寫測試連接數據庫的測試用例,需要用到兩種不同的方法:一、利用JDBC連接,二、利用數據源連接。

本文以連接oracle爲例,實現數據庫連接的測試,其中oracle利用數據源連接可參見http://book.51cto.com/art/200812/104080.htm

   在寫測試用例中,開始由別人講基本的連接數據庫的方法寫好了,利用Properties類實例化來獲取配置文件中的屬性信息。坑人的是,同事直接在配置文件中寫的url連接數據庫(url=jdbc:oracle:thin:@192.168.96.1:1521:oracle9i),在寫利用數據源連接數據庫時,需要用到ServerName,portNumber、databaseName等,直接將這些寫在配置文件中,在程序中連接URL多好啊,讓我從URl中將ServerName,portNumber、databaseName等解析出來,坑啊!!!

   解析這些信息,最開始想法的是google一下,看看能不能調用什麼方法來直接獲取,最開始使用的是InetAddress,希望能夠直接獲取ServerName,(51中,可以參考http://book.51cto.com/art/200809/89207.htm實例很清晰),沒有成功。又嘗試利用URl類實例化對象(51中,可參考http://book.51cto.com/art/200809/89209.htm),也沒有成功,好像報沒有對應的協議的錯誤,可能是這兩種方法不支持該種URl,只支持類似於www.baidu.com或者沒有解析的網絡URl吧(具體不是很清楚)。

   最後,利用split()先將配置文件中的URl分成對個子串,再通過subString定位子串,獲取對應信息,有關代碼如下:

 

  1. String  s = "“jdbc:oracle:thin:@192.168.96.1:1521:oracle9i"
  2. String []stringBuff = s.spilt(":");//拆分字符串 
  3. int len = stringBuff.length(); 
  4. //利用subString定位子串位置,獲取信息 
  5. String ServerName = stringBuff[len-3].subString(1); 
  6. int PortNumber = Integer.parseInt(stringBuff[len-2].subString(0)); 
  7. String DatabaseName = stringBuff[len-1].subString(0); 

 

說明:本文是自己在工作中遇到的一點小情況,通過學習、實際操作,將自己所學記錄於此。其中的有關知識可能還存在問題,希望批評指正,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章