Connecttion conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","6360123");
Statement stmt=conn.createStatement();  1、createStatement()方法不是抽象方法吗,它什么时候被实现的?
2、调用getConnection()后,是否会返回一个默认Connection接口实现类的conn对象,并且实现类已经实现了Connection接口中的所有抽象方法?

解决方案 »

  1.   

    Connecttion conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","6360123");
    System.out.println(conn.getClass());  // 想看这个对象具体的实现就这样做
    Statement stmt = conn.createStatement(); 
      

  2.   

    1、包java.sql.Connection是接口,这个接口可以是Oracle实现,也可以是mysql实现。
    2、mysql对Connection具体的实现是这个类:com.mysql.jdbc.JDBC4Connection
      

  3.   

    1、createStatement()方法不是抽象方法吗,它什么时候被实现的?
    在驱动中
    Class.forName("......"),载入了驱动
    DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","6360123");
    通过url创建了相应实现Connection类的对象2、调用getConnection()后,是否会返回一个默认Connection接口实现类的conn对象,并且实现类已经实现了Connection接口中的所有抽象方法?
    是返回一个Connection接口实现类的conn对象(如MySQL驱动中Connection).
    返回的对象中肯定是没有抽象方法的,如个一个类实现一个接口没有实现全部的方法,这个内只能是抽象类,而抽象类是不能创建对象的
      

  4.   

    1.Connection是一个接口,每种数据库都有其对应的实现,这就是为什么我们在连数据库的时候需要引入第三方包的原因了。这些实现都在那个包里面的。
    2.他会根据你的url返回一个实现了Connection接口的实例对象。