怎样设计数据库的访问框架???????????????? 需求是存在多种DBMS:oracle,mysql,当我select, insert, update的时候要操作多种DBMS的多个表。请问怎样设计才好啊?怎么灵活实现数据库连接,数据库操作,查询数据的封装(封装成list)?请高手赐教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 访问多个DBMS又无所谓,主要是数据库表之间的设计,扫除沉于 我经常这么做:对于每个表或者视图的select insert update delete操作定义成接口,对于每种数据库都实现一遍,使用时选中相应的数据库实现版本就可以了使用接口方法不变。 to wdman(只会Java,郁闷!) 我觉得多种DBMS跟一个DBMS基本差不多,唯一不同的是数据库的连接,所以select insert update delete可以定义在abstract class中,然后每种数据库都实现一个类并都继承这个类,getConnection()定义在这些子类里,为了安全、稳定我定义一个接口,里面声明getConnection() 和freeConnection()方法。你们觉得怎样??? to nineday():所有的数据库连接,只要你通过JDBC接口,看到的都是一样的,这是唯一相同的东西,而不是你说的唯一不同的东西。当然如果从编程的角度考虑,那么这个也是变的。但是各种DBMS中,各有各的数据类型,函数,sql特性等等,所以你不能用同一个sql语句来在所有不同的数据库上执行,当然最简单的没有问题,或者都用标准的sql。所以理论上必须分开。表和表之间的关系,通过Java的class来描叙,最后都统一到java的class上来。如何去让这些class和各个数据库的表呀视图之间建立起联系,这就是数据访问层要做的事情。所以到最后,我们是看不到数据库的,我们只能看到那些用来描叙数据关系的Class,现在已经有很多框架都在做这些事情,比如Hibernate。所以一般都是作用到数据库的表或者视图,而不是直接对数据库进行操作,如果只是要对数据库进行操作,JDBC就足够灵活了,赫赫。我是这么认为的,赫赫,不一定对,仅供参考。 这个程序为什么不能运行? JTree 的节点拖动 8皇后问题 好奇怪的线程问题啊?(刚开的用户加分现在不能用,我会加100分的) 两个关于Java的问题! 【飞加Java学习笔记_垃圾回收】 如何把某日的日期格式转换为YYYY-MM-DD的串格式显示??? 既然在定义实例变量的时候可以初始化实例变量的值,那还要构造函数干吗?谢谢! 求助:java aes加密的问题 【一道面试题】新手求教 上海信雅达公司如何,up有分 一个简单的UDP程序的求教
对于每种数据库都实现一遍,使用时选中相应的数据库实现版本就可以了
使用接口方法不变。
我觉得多种DBMS跟一个DBMS基本差不多,唯一不同的是数据库的连接,所以select insert update delete可以定义在abstract class中,然后每种数据库都实现一个类并都继承这个类,getConnection()定义在这些子类里,为了安全、稳定我定义一个接口,里面声明getConnection() 和freeConnection()方法。
你们觉得怎样???
所有的数据库连接,只要你通过JDBC接口,看到的都是一样的,这是唯一相同的东西,而不是你说的唯一不同的东西。当然如果从编程的角度考虑,那么这个也是变的。
但是各种DBMS中,各有各的数据类型,函数,sql特性等等,所以你不能用同一个sql语句来在所有不同的数据库上执行,当然最简单的没有问题,或者都用标准的sql。所以理论上必须分开。
表和表之间的关系,通过Java的class来描叙,最后都统一到java的class上来。如何去让这些class和各个数据库的表呀视图之间建立起联系,这就是数据访问层要做的事情。
所以到最后,我们是看不到数据库的,我们只能看到那些用来描叙数据关系的Class,现在已经有很多框架都在做这些事情,比如Hibernate。
所以一般都是作用到数据库的表或者视图,而不是直接对数据库进行操作,
如果只是要对数据库进行操作,JDBC就足够灵活了,赫赫。我是这么认为的,赫赫,不一定对,仅供参考。