最近鬼使神差的打起了jdbc的主意,原因是需要在软件里整合oracle驱动
这是一个常见问题,但是俺不准备以常见方式解决
常见方式不外乎弄个“精简”的oracle客户端(需要写注册表)或者用oracle出的直连客户端(需要配置tnsname文件)
或者干脆整合oracle的odbc驱动(需要注册和配置)
俺用powerbuilder,常见方式都用过,这次准备对pb10.5支持的jdbc用功,心路历程如下:
1、在本地配置oracle的jdbc,成功(需要在pb里设置jvm和classpath)
2、在生产环境实施:安装jre、设置JAVA_HOME/CLASSPATH(都是说明里写的,没什么特别)
3、开始简化
A、jre问题:jre不用安装,设置JAVA_HOME就行。
于是把jre目录copy到程序目录,无意中发现,只要名字叫jre,不用设置JAVA_HOME,也可以找到(窃喜,后来得知大部分用的jre的软件都可以这样)
B、classpath问题:classpath必须设置,不然无法找到jdbc驱动(书上、网上都是这么写的)
可是俺不愿意这么干,原因嘛,因为比较麻烦(废话)
于是开动脑筋,经测试得知,如果把jdbc驱动的.jar文件放到程序运行目录中,可以找到
本以为解决问题了,后来发现,如果目录名是中文的,还是找不到(万恶的拉丁文字)
再次开动脑筋(俺不会别的)
发现jvm初始化时会载入rt.jar中的文件(俺臆断rt就是runtime的意思),察知现在好多人都在试图精简rt.jar,大部分是为部署方便
又发现.jar文件就是zip格式的(俺孤陋寡闻,这个全世界都知道)
于是。。。。。。
C、中途很不巧的遇到pb自己的jdbc支持库中一个jar文件也会在中文目录的情况下找不到
遇神杀身、遇佛杀佛
4、jdbc应用经验
用jdbc的好处是不用注册、配置,兼容性强
缺点是:
a、启动稍慢,不过现在的电脑,只是延迟半秒左右,可以忽略
b、pb自己的数据库画板无法使用全部jdbc特性,设计时效率较低,但执行没问题
c、软件包比原来要大,但是可以通过精简jre缩小,不过据说sun不高兴俺们这样做