问题一:package java.sql;public interface Statement {
    ResultSet executeQuery(String sql) throws SQLException;
    int executeUpdate(String sql) throws SQLException;
    void close() throws SQLException;
    int getMaxFieldSize() throws SQLException;
    void setMaxFieldSize(int max) throws SQLException;
}  
就比方说以上几个,我只列了这几个。我们用数据库查询功能时直接写Statement 语句,但这些函数也直接用了,不知这些函数是如何实现的?
   请高手指教!谢谢!
问题二:
  java中有native函数,这是通过java调用本地虚拟机中的函数实现的,这个和以上函数实现的方式有区别吗?

解决方案 »

  1.   

    每个JDBC,你不是先要加载数据库的驱动程序嘛?这些就是在驱动程序中实现的。
      

  2.   

    這些接口是你倒入的數據庫類庫中的類實現的,比如class12.jar
      

  3.   

    楼上的两位看过jdbc的源码吧?
      

  4.   

    有谁研读过jdbc的源码啊,交流一下吧。jdbc中用到socket了吗?
      

  5.   

    研读过jdbc的源码的higher come in!
      

  6.   

    JDBC是一套标准,没有源码,要说源码,基本上全是接口定义。
    也就是说,JDBC定义了所有的接口标准,具体代码交给驱动程序编写者去实现。
    做为应用开发人员,研究驱动程序代码意义不大,JDBC的初衷就是要让数据访问透明化,将不同数据库的访问方式统一起来。再说,驱动程序的底层代码相当多,而且一般是不开源的。
      

  7.   

    我就是想请教一下jdbc驱动程序的底层代码的实现!帮帮忙吧
      

  8.   

    JDBC 一般通过 TCP/IP 协议与数据库连接的,也需要使用 Socket 的,具体的实现各种数据库都不相同,可能与 DBMS 的物理结构、设计以及与外部通信协议有关系吧。SQL Server 和 Oracle 的驱动没有看到过源代码,但 MySQL 可以找到源代码,这些驱动的代码量是非常庞大的,不熟悉 DBMS 的架构的话,是很难看懂的。
      

  9.   

    那些东西是在驱动里实现的。比如Oracle是在class12.jar这个驱动里实现的。SQL Server2000有三个jar:msbase.jar,mssqlserver.jar msutil.jar。不是写在JDK源码里的,因为不同的数据库实现的方式不一样,这些东西是靠各数据产商写的,而不是SUN公司写的,SUN公司只是提供了这个接口。就像你的电脑上的USB接口一样,可以接MP3,又可以接游戏手柄,也可以接打印机一样。电脑主板只是提供这个接口。USB的接口有四条线,两条数据线,两条电源线,只要接上去的部件依照这个接口来做,就可以正常工作。就像Connection这个接口,有个createStatement方法,这个方法体是空的,具体的实现在不同的JDBC驱动里是不一样的。