需求是存在多种DBMS:oracle,mysql,当我select, insert, update的时候要操作多种DBMS的多个表。
请问怎样设计才好啊?
怎么灵活实现数据库连接,数据库操作,查询数据的封装(封装成list)?请高手赐教

解决方案 »

  1.   

    访问多个DBMS又无所谓,主要是数据库表之间的设计,扫除沉于
      

  2.   

    我经常这么做:对于每个表或者视图的select insert update delete操作定义成接口,
    对于每种数据库都实现一遍,使用时选中相应的数据库实现版本就可以了
    使用接口方法不变。
      

  3.   

    to wdman(只会Java,郁闷!) 
    我觉得多种DBMS跟一个DBMS基本差不多,唯一不同的是数据库的连接,所以select insert update delete可以定义在abstract class中,然后每种数据库都实现一个类并都继承这个类,getConnection()定义在这些子类里,为了安全、稳定我定义一个接口,里面声明getConnection() 和freeConnection()方法。
    你们觉得怎样???
      

  4.   

    to nineday():
    所有的数据库连接,只要你通过JDBC接口,看到的都是一样的,这是唯一相同的东西,而不是你说的唯一不同的东西。当然如果从编程的角度考虑,那么这个也是变的。
    但是各种DBMS中,各有各的数据类型,函数,sql特性等等,所以你不能用同一个sql语句来在所有不同的数据库上执行,当然最简单的没有问题,或者都用标准的sql。所以理论上必须分开。
    表和表之间的关系,通过Java的class来描叙,最后都统一到java的class上来。如何去让这些class和各个数据库的表呀视图之间建立起联系,这就是数据访问层要做的事情。
    所以到最后,我们是看不到数据库的,我们只能看到那些用来描叙数据关系的Class,现在已经有很多框架都在做这些事情,比如Hibernate。
    所以一般都是作用到数据库的表或者视图,而不是直接对数据库进行操作,
    如果只是要对数据库进行操作,JDBC就足够灵活了,赫赫。我是这么认为的,赫赫,不一定对,仅供参考。