oracle 11g release2版本jdbc,Berkeley DB 11g Release 2 JDBC编译方法

最新发布的Oracle Berkeley DB 11g Release 2(以下简称BDB

11gR2)提供了对SQL的支持。同时,BDB11gR2还支持通过JDBC驱动来访问BDB 11gR2数据库。在当前版本的BDB

11gR2,我们推荐用户使用Werner版的JDBC驱动程序:。下文如未明确指明,则JDBC缺省指的是Werner版的JDBC驱动程序,且本次发布是基于版本javasqlite-20090430。

本文演示了如何在Linux和Windows平台上,编译和配置BDB 11gR2 的JDBC访问。更多关于BDB 11gR2的信息,请参考BDB的官方文档。

什么是JDBC

根据维基百科的定义:Java数据库连接(Java Database Connectivity,简称JDBC),是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC是面向关系型数据库的。

前提条件

1. 请到Oracle官方网站: 下载最新版本的Berkeley DB 11g Release 2源代码包。选择一个目录,解压缩源代码包,释放后的目录为,其中x是具体的小版本号。

备注:

解压完后在/sql/jdbc目录下会带有一份JDBC驱 动程序的源代码;

注意本次附在Oracle Berkeley DB 11g Release

2发布包中的JDBC驱动程序以开源形式提供。上述JDBC驱动程序的代码不属于Oracle Berkeley DB的知识产权,Oracle

Berkeley DB组暂时不提供相关的支持和维护。

2. 请确认你的Windows/Linux机器安装了JDK(1.4及以上版本);

3. 请确认你的Windows机器安装了Visual Studio(2005及以上版本);

在Linux平台配置JDBC

1. 进入目录/build_unix(注意:该目录是所有Unix/POSIX平台上编译生成BDB 11gR2的入口),运行如下命令来编译得到BDB 11gR2的库文件:

$ cd build_unix

$ CFLAGS="-fPIC" ../dist/configure --enable-sql_compat --disable-shared

$ make

备注:

选项“–disable-shared”指定目标文件为静态库,否则用户的应用程序最终需要链接两个动态库文件(一个是DB库,另一个是JDBC的JNI库);

这一步骤会在/build_unix目录下生成libdb-5.0.a。

2. 进入目录/sql/jdbc,运行如下命令来编译得到JDBC驱动器所需要的Java类包以及JNI库文件:

$ cd ../sql/jdbc

$ CFLAGS="-DHAVE_SQLITE3_MALLOC -DHAVE_ERRNO_H \

-I../../build_unix -I../../dbinc" \

LDFLAGS="../../build_unix/libdb-5.0.a" \

./configure -with-sqlite3=../generated

$ make

备注:

在make步骤中,你会遇到类似于如下的Warning:

*** Warning: Linking the shared library libsqlite_jni.la against the

*** static library ../../build_unix/libdb-5.0.a is not portable!

这个Warning是由libtool产生的 ,原因是所链接的libdb-5.0.a库文件没有提供相应的libdb-5.0.la文件。此Warning可以忽略,丝毫不影响使用JDBC;

这一步骤会生成两个 目标文件:一个是Java类包:/sql/jdbc/sqlite.jar,另一个是JNI库文件:/sql/jdbc/.libs/libsqlite_jni.so。

3. 进入目录/sql/jdbc,运行如下命令验证得到的目标文件是否正确:

$ javac -classpath ./sqlite.jar test3.java

$ java -Djava.library.path=./.libs -classpath ./sqlite.jar:. test3

备注:

test3.java是JDBC驱动器自带的一个测试程序,请阅读此文件,了解大致此测试程序做了那些操作。

如果屏幕显示出如下结果,则表明JDBC已经配置成功了。

INFO: expecting {96,97,98,99} got {96,97,98,99}

TRACE: drop table TEST3

TRACE: drop table B

TRACE: select * from sqlite_master

cleaning up ...

done.

备注:

运行完上述示例后,你将在当前目录下能够看到一个名为db3的文件以及一个名为db3-journal的目录文件,其中db3是数据库文件,db3-journal是数据库环境的根目录;

使用file命令查看db3数据库文件属性,显示如下:

$ file db3

db3: Berkeley DB (Btree, version 9, native byte-order)。

在Windows平台配置JDBC

1. 用Visula Studio打开/build_windows/目录下的Berkeley_DB.sln文件;

2. 在Visula Studio中,选择File->Add->Existing

Project,选中build_windows/db_sql_jdbc.vcproj工程文件并添加到Berkeley_DB.sln中,同时设置

db_sql_jdbc工程依赖于db_sql工程;

3.

编译db_sql_jdbc工程,这一步骤将在目录\build_windows

\\\下产生如下目标文

件:jdbc.jar,libdb50d.dll,libdb_sql50d.dll,sqlite_jni.dll;

4. 进入目录\build_windows\Win32\Debug(我的测试平台是Win32,编译模式是Debug),运行如下命令来 验证你编译得到的目标文件是否正确:

javac -cp ".;jdbc.jar" -d . ..\..\..\sql\jdbc\test3.java

java -cp ".;jdbc.jar" test3

备注:

test3.java是JDBC驱动器自带的一个测试程序,请阅读此文件,了解大致此测试程序做了那些操作。

如果屏幕显示出如下结果,则表明JDBC已经配置成功了。

INFO: expecting {96,97,98,99} got {96,97,98,99}

TRACE: drop table TEST3

TRACE: drop table B

TRACE: select * from sqlite_master

cleaning up ...

done.

备注:

运行完上述示例后,你将在当前目录下能够看到一个名为db3的文件以及一个名为db3-journal的目录文件,其中db3是数据库文件,db3-journal是数据库环境的根目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle官方11g 最新版jdbc驱动。 新特性:   1、支持JDK6,支持JDBC 4.0,新的java.sql.SQLXML类型没有被支持,是使用ojdbc6.jar来支持。J2SE 5.0 和 JDBC 3.0 全面支持使用ojdbc5.jar。   2.不再支持oracle.jdbc.driver。从9.0.1开始的每个release都推荐使用oracle.jdbc。这一天终于到来,在11g中,引用oracle.jdbc.driver不再通过编译。   3.j2se 1.2,1.3,1.4不再支持。11R1不再包括这些版本的jar和zip,如果仍然使用这些版本,可以继续使用10gR2的jdbc。   4.11gR1 Thin driver支持AES加密算法,SHA1 hash算法,RADIUS, KERBEROS,SSL认证机制.   5.支持ANYDATE和ANYTYPE类型。这两种类型自9i引入,11R1前,程序员只能通过PL/SQL操作。   6.高级队列支持。11R1提供了访问AQ的高性能接口。   7.支持数据库变更通知。   8.Thin和OCI的数据库启动和关闭。11R1提供了这样的方法来启动和关闭数据库。   9.新的工厂方法Oracle JDBC 11R1 oracle.jdbc.OracleConnection提供了创建Oracle对象的工厂方法。   包括ARRAY, BFILE, DATE, INTERVALDS, NUMBER, STRUCT, TIME,TIMESTAMP,TIMESTAMP等。   ojdbc5.jar: 适用于jdk5   ojdbc6.jar: 适用于jdk6   ***_g.jar 只是用javac -g编译,生成所有调试信息,其它全一样   ---------------------------------------------------   总体讲新版本JDBC驱动 性能强、很多bug被发现并已解决。   我遇到的,之前使用ojdbc14.jar(不记得哪个版本了)批量插入10万条,实际只插入了3万多条,其它的丢失了,换ojdbc6.jar后,一次commit批量插入100万条也OK了。   尽量使用和数据库版本一致的驱动,有bug时,换高版本JDBC驱动试试 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值