您的位置:首页 > 数据库 > Oracle

JDBC 链接oracle数据库(toad oci连接在64位解决办法)

2015-11-23 20:30 525 查看
众所周知,Java是现今世界最受程序欢迎的编程语言,而oracle数据库以其高性能、完备的数据闪回和保存机制而成为收费数据库解决方案中的无冕之王。

我们可以通过JAVA链接我们的oracle数据库。

JAVA中存在一组链接数据库接口,使得我们可以很轻松的完成一个对数据库客户端的开发

这里我们使用的JAVA IDE是eclipse,数据库使用的是oracle11g。

首先,我们需要将我们的数据库驱动程序导入工程中。

选中我的工程右击->build path->add Excternal Archivers..



在新弹出的窗口中,前往oracle安装目录

%Oracle安装目录%\product\11.1.0\db_1\jdbc\lib

找到ojdbc6.jar这以jar文件,并选中,然后单击“打开”。(博主一般全选这些jar文件 其实只需要ojdbc6这个)



导入后,兴建一个JAVA类,开始书写jdbc程序

首先,通过Class下的forname方法加载驱动。注意:是Class类而不是class类哦!

然后用 DriverManager.getConnection(url , username , password ) 这个方法获得一个连接资源。

后两个是连接数据库时使用的用户名和密码。

第一个URL是连接协议,这里连接oracle有两种方方法–thin方法和oci方法。thin方法是一种轻量级的连接方法,他是用纯JAVA连接的,如果我的连接量比较少的话推荐这个方法,相应的协议可以写成“jdbc:oracle:thin:@localhost:1521:数据库的SID”。这个连接协议在32位和64位上都能好用(前提是你的企业管理器能够连上数据库)

oci方法是企业级的连接方案,它的实质是调用位于oracle客户端文件夹下的oci动态链接库。这种办法性能优越,尤其是连接池功能大大提高了应用程序的性能和并发量。如果你的数据库是32的那么URL=“jdbc:oracle:oci:@数据库的SID”。但是在写在64的Windows下却不好使,JAVA无法这么连接到数据库而且在64位下oracle自带的sql developer和pl/sql developer无法使用。经过博主几番资料的查询,原来是我的oci是64位的而我的连接工具pl/sql developer只能识别32位的oci,需要下个32位的客户端。具体解决方案见这篇博文

http://jingyan.baidu.com/article/fb48e8be4c7c206e622e1491.html

但是!但是!在一次偶尔的用toad(一个类似于sql plus的图形化编程工具)连接数据库时我发现了一个不需要配置这个方法,而且这个方法也能让我用JAVA连接数据库。当我将URL写成“oci:@localhost:1521:/数据库的SID”就能链接数据库啦!

以下是JAVA连接数据库的代码:

public class JdbcUtils {

private static final String driverUrl = "oracle.jdbc.driver.OracleDriver";

private static final String url = "jdbc:oracle:oci:@localhost:1521:/ORCL";

private static final String username = "scott";

private static final String password = "12345678";

public static Connection getConnection(){
Connection connection = null;
try {
Class.forName(driverUrl);
connection = DriverManager.getConnection(url, username, password);
connection.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}


oracle在64位的Windows上有诸多的bug,建议初学者在用Windows时还是使用32位的系统建立数据库

oci连接数据库的方法我在toad和JAVA上去连都好用,但这种情况是不是个别现象,我只在两台不同电脑上试过,pl/sql developer由于博主用的是toad再也没去试过能不能连上了。后来不知道是不是由于长时间开机的缘故,导致oci又连不上了。后来发现是数据库坏了,企业管理器也无法打开,thin方法也连不上。也许是TNSlistener出现问题了,也许是端口号出现了改变。究竟是为何,我现在也正在试,网上基本没有这种状况的解决办法。

以上纯属个人拙见,如有不足,烦请多多指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 oracle java