我准备做一个类似PL/SQL的工具(要跨平台),想要特定解吸库(Oracle/mysql/sqlserver/...)结构,是不是要用到他们专用的java api

解决方案 »

  1.   

    不一定啊,可以使用DatabaseMetaData和ResultSetMetaData来获得。可以通过Connection.getMetaData()获得DatabaseMetaData通过ResultSet.getMetaData()获得ResultSetMetaData。
      

  2.   

    不需要,实际上,你只需采用jdbc规范来写就行了,主要方法就是java.sql下的那些类,就是和 Polarislee说的差不多。数据库厂商一般都是按照jdbc规范来写他们各自的驱动程序的,一般他们都是继承java.sql里提供的接口然后各自实现自己的方法。只要你也按照jdbc接口来做,就可以实现对接了。
    当然,也有的数据库厂商虽然按规范来写,但是有很多规范的内容并没有完全实现,比如mysql以前的版本就没有对自增字段实现,直到最新的版本才实现这个方法。而且,对于每个数据库特有的一些东西,jdbc规范是无法全部兼容的,所以你想兼容每个数据库的所有功能,基本上是不可能的。