据我所知,使用jdbc链接上oracle有两种方法:java
一、 使用thin链接数据库
因为thin驱动都是纯Java代码,而且使用TCP/IP技术经过java的Socket链接上Oracle数据库,因此thin驱动是与平台无关的,你无需安装Oracle客户端,只须要下载一个thin驱动的jar包,而且将环境变量中的CLASS_PATH变量中加入thin驱动的路径就能够了。Thin驱动虽然与平台无关,也无需安装Oracle客户端,可是有一个致命的缺陷就是性能通常,达不到如OCI方式的企业级的要求。另外,若是一个oracle数据库对应一台主机,可使用thin链接;若是一个oracle数据库对应四五台主机(集群服务器),使用thin时,须要把tnsnames.ora文件中的相关数据库的整个链接字符串都拷贝下来,如此才能链接上oracle集群数据库。而这种方法也是和数位同事讨论并Google了大量资料后才发现的。以前我一直觉得thin不支持集群数据库的方式。服务器
而后就是设置链接字符串了。这个是固定的写法,以下所示:并发
Class.forName("oracle.jdbc.driver.OracleDriver");oracle
Connection conn =DriverManager.getConnection ("jdbc:oracle:thin:@10.87.134.107:1521:ora9","sms" , "zzsms");性能
在上面的链接字符串中,若是不是集群数据库就在@后直接输入数据库IP地址便可;若是是集群数据库,则须要在@后输入tnsnames.ora文件中有关该数据库的全部描述内容(一般是=后边的全部的内容)。ci
二、 使用oci链接(Oracle Call Interface)文档
使用OCI链接数据库是企业级的作法,适应于单个数据库和集群数据库,性能优越,尤为是链接池功能大大提升了应用程序的性能和并发量。惟一的缺点是,若想使用OCI必需要安装Oracle客户端。字符串
安装完Oracle客户端后,里面有个jdbc的文件夹,该文件夹下就包含了OCI驱动和THIN驱动。因此是不须要去网上下载的。这个驱动在jdbc/lib文件夹下,主要有classes12.jar、nls_charset12.jar等等。其中以12结尾的驱动包适应于jdk1.1以上的版本。以11结尾的适应于jdk1.1如下的版本。文件名中含有classes的jar包就是驱动程序,文件名中含有nls的jar包是与国际化有关的类。get
找到文件后,就须要把class和nls的jar包的绝对路径加入CLASS_PATH环境变量,不然会报ClassNotFound的异常。
设置环境变量后,就能够直接使用OCI驱动了,不要被“驱动”两个字吓坏了,(驱动就是一个可执行文件和一个链接字符串)。很简单,无非是链接字符串的问题。标准的链接字符串以下所示:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:oci:@xxzc","duansiyuan", "oracle_password");
只要这两行,就能够保证链接到数据库,而这个数据库无论是单个数据库仍是集群数据库。其中xxzc就是数据库名,duansiyuan就是用户名,oralce_password就是密码。这种方式和C#中的方式比较相似。
须要注意的问题:
一、oracle_home/jdbc文件夹下有大量的样板代码和帮助文档,里面对如何安装和使用jdbc都有详细的说明,请引发高度重视并耐心阅读。里面有不少知识仅经过本身反复的实践是没法获取的。
二、若是想要高性能,请使用OCI链接,若是不想装Oracle客户端,请使用thin链接。