日期:2014-05-20  浏览次数:20744 次

使用jdbc怎么实现一次编写 ,到处运行?
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 


使用Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute ,传递一些sql语句,这些sql语句都是符合各个数据库语法的,怎么可能一次编写,到处运行呢?比如oracle的对时间的处理函数有to_date ,而mysql 就是date_format了.



------解决方案--------------------
这个你还真没法,最简单的驱动,用户名能一样?mysql的root,sqlserver的sa,除非你仿照hibernte,写个配置文件,配置文件中配置密码,用户名,url,驱动,指定数据库方言,java代码中实现各种数据库
------解决方案--------------------
楼主只是举例了函数,其实即便是SQL语句,不同数据库支持的能力都不一样。

有些支持分页 limit,有些支持父子连接,有些支持匿名嵌套子查询。


绝对意义的跨平台是不存在的。



不过仅就函数而言的话,为了减轻移植工作,你可以适当的重写这些函数。
------解决方案--------------------
认真的话你就输了。 

一次编写处处运行的真正含义是java的虚拟机机制可以让你不关心底层的操作系统(windows/linux等等),直接使用统一的api来保证程序的可移植性。

不同数据库有它们各自所支持的函数、特性等。这个不归java管。。。
------解决方案--------------------
通用性必然以能效为代价。取舍而已。

你可以用绝对标准的SQL93语法来实现整个系统,从而得到跨平台性,代价就是各类如分页等的好处你就统统的只能干瞪眼了。
------解决方案--------------------
要覆盖所有数据库估计很难的,但如果仅仅是为一个数据库设计,那还剩很容易的jdbc API很好用的,网上这样的实例也很多啊
------解决方案--------------------
LZ你理解错了
人家的意思是API统一,至于sql语句那要看各个厂商的了,
------解决方案--------------------
受教,好久没有写程序了
------解决方案--------------------
楼上们都说的很好。
都是我的见解。
不过话说回来。哪个公司会没事平凡的换数据库?
说跨平台那是SUN开始为了占领小型电子市场,存在很多不同平台而开发
的java

但是JDBC这个东西。其实还是操作的数据库。执行的SQL,
数据库厂商们没有跨平台呀。

还有楼主给分记得给几分给我呀。
哈哈。