回顾一下Java中数据库访问,还是有一些可笑的随意性的问题。
9年未写java了,近来忽然用java写一个原型演示系统,用到了数据库访问,于是就重温了一下数年前的旧梦,但仍让我梦到了恶魔。
一提到Java数据库访问,大家马上会想起几个方法:
一,本地的API半Java驱动:
这些设计之初就是没有用的东西,也就是用java写了一套库,直接调用安装在本机上的数据库的二进制驱动API,对数据库进行最直接的访问,一来各家数据库实现不同,二来打破了Java的跨平台性,三来,如保移植?但如果想写一些面对特定数据库的中间件还是很高效的访问速度。
二,JDBC-ODBC桥:
就是一套接口对ODBC进行JNI访问,这就是对数据库访问多绕了一些弯子,不建议,不过移植性很高,旧有很多ODBC数据库源嘛。
三,本地协议的纯Java驱动
就是各家厂商按着较为统一的接口接供纯Java的实现库,该库可通过数据库的网络协议直接对数据库进行访问。系统可方便进行发布设计,同时有较统一的接口。也是纯Java代码,也较简洁,也称为瘦客户端访问方式。不知道说错了没有,毕竟9年没玩过java了,访者别跟较真,呵呵
四,JDBC-Net方式:
就是客户端用的JDBC被转换成与数据库协议无关的网络协议,再被中间件在网络上接收,再转换成对数据库的调用。方便于分布式系统,当然会增加系统的复杂度。当年我玩 Oracele Net时,那中间的配置真是折腾人呀。
回忆完了,开始干活吧,首先决定采用瘦客户端方式,优点:速度适中,代码易移植,对数据库的环境要求不高。数据库类型用Mysql吧,又不是复杂应用,再说了,现在的Mysql一般够用了。
1,网上mysql官方网站下载mysqlconnectorxxxxx516.jar包,才几M不大,
2,加载到Eclipse的相关的Project的引用中。
3,代码中使用class.forName(),DriverManager来调用,
结果:是失败,检查一切相关性,没问题,但就是调用失败。花了一个晚上时间才解决问题,原来是mysqlxxx516这个JDBC包有问题。就是无法与Jre1.6共同使用。换了一个mysqlxxx508一切OK,什么年代了,居然还会有这样的问题,这也是我当年不喜欢再搞java的原因之一,当年到处是不明的不区配原因,现在好多了,不过相对于Symbian这样的开发环境来说,那excellent多了,用了几年Symbian环境你才会发现其它开发环境的优点,红花还要绿叶衬嘛。嘿嘿,先写到儿。