这两天,在写测试连接数据库的测试用例,需要用到两种不同的方法:一、利用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定位子串,获取对应信息,有关代码如下:
- String s = "“jdbc:oracle:thin:@192.168.96.1:1521:oracle9i";
- String []stringBuff = s.spilt(":");//拆分字符串
- int len = stringBuff.length();
- //利用subString定位子串位置,获取信息
- String ServerName = stringBuff[len-3].subString(1);
- int PortNumber = Integer.parseInt(stringBuff[len-2].subString(0));
- String DatabaseName = stringBuff[len-1].subString(0);
说明:本文是自己在工作中遇到的一点小情况,通过学习、实际操作,将自己所学记录于此。其中的有关知识可能还存在问题,希望批评指正,谢谢。
转载于:https://blog.51cto.com/dqing/992269