java.sql.Connection不是一个接口吗?为什么在代码中可以直接用它,它的实现在哪里?

解决方案 »

  1.   

    最终是DriverInfo.driver.connect(url,info);得到连接
    Connection本来就是接口
    但绝对没人写new Connection;
    一般都是Connection con=DriverManager.getConnection();
    或者也有con=ConnectionPool.getConnection();
      

  2.   

    我现在有点倒霉,我看的一个项目就有一个实现类:
    public class AntConnection implements Connection
    而且当时的开发环境是JDK1.4以前的版本,而JDK1.4在这个接口增加了新的成员如:void releaseSavepoint(Savepoint savepoint) throws SQLException; 我是根据注释 “@since 1.4”来判断的,也不知是不是这个意思。我现在用的是JDK1.4,由于AntConnection 没有实现这个新增加的成员,在JBuilder编辑器中老报错。
    AntConnection is not abstract and does not override abstract method setSavepoint(java.lang.String) in java.sql.Connection at line 6, column 1。
    是不是必须实现所有的成员函数才行。不过 public abstract  class AntConnection implements Connection这样定义就不会出错了。我初学,那位能给我分析分析。
      

  3.   

    呵呵,理解正确:"是必须实现所有的成员函数才行。"
    试试看eclipse,它可以帮助你自动改正这个问题
      

  4.   

    接口就是要用来实现的,eclipse在新建类实现接口的时侯,会自动加上必须要实现的方法!这样就知道有哪些方法是抽象的了