这两天,在写测试连接数据库的测试用例,需要用到两种不同的方法:一、利用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); 

 

说明:本文是自己在工作中遇到的一点小情况,通过学习、实际操作,将自己所学记录于此。其中的有关知识可能还存在问题,希望批评指正,谢谢。