谁在这个java程序中实现了连接、结果集和语句接口?
我最近发现以下程序中使用的语句、连接和结果集都是接口。这个程序运行得很好,但是谁实现了这些接口呢谁在这个java程序中实现了连接、结果集和语句接口?,java,interface,Java,Interface,我最近发现以下程序中使用的语句、连接和结果集都是接口。这个程序运行得很好,但是谁实现了这些接口呢 package jdbc; import java.sql.*; public class Mango { public static void main(String[] args) throws Exception { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection co
package jdbc;
import java.sql.*;
public class Mango {
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@66.66.66.128:1521:xe","SYSTEM","matrix");
Statement comm = con.createStatement();
comm.executeQuery("insert into a values('a',1)");
ResultSet res = comm.executeQuery("SELECT * FROM A");
comm.executeQuery("insert into a values('a',1)");
while(res.next()) {
System.out.println(res.getString(1) + " " + res.getInt(2));
}
}
}
JDBC驱动程序提供程序提供了可以执行此操作的实现。在这种情况下,甲骨文
System.out.println("con class is "+ con.getClass());
System.out.println("comm class is "+ comm.getClass());
System.out.println("res class is "+ res.getClass());
顺便说一句,使用完资源后不要忘记关闭它们,否则您可以获得内存许可。JDBC API是通过各种数据库软件供应商提供的JDBC驱动程序实现的
JDBC驱动程序是一组实现JDBC接口的类,用于处理JDBC调用并将结果集返回到Java应用程序这些接口类型的实现是特定于供应商的。 例如,如果您正在使用Mysql,并且已经将Mysql Jar放在类路径中,那么实现类如下所示:
1. java.sql.Statement [Interface] -> com.mysql.jdbc.StatementImpl [Class]
2. java.sql.Connection [Interface] -> com.mysql.jdbc.MySQLConnection [Interface] -> com.mysql.jdbc.ConnectionImpl [Class]
3. java.sql.ResultSet [Interface] -> com.mysql.jdbc.ResultSetImpl [Class]
数据库供应商提供第三方驱动程序,JDBC-ODBC驱动程序通过该驱动程序与数据库通信。这些第三方驱动程序具有某些类,这些类实现接口并根据需求编写其主体。因此,当您从mysql数据库移动到oracle数据库时,驱动程序的主体会发生变化。接口语句、连接和结果集最终由第三方JDBC驱动程序提供程序实现 假设您使用的是MySQL驱动程序,这就是实现的层次结构
com.mysql.jdbc.StatementImpl(类)-->实现-->com.mysql.jdbc.Statement(接口)-->扩展-->java.sql.Statement(接口)
com.mysql.jdbc.jdbc4连接(类)-->扩展-->com.mysql.jdbc.ConnectionImp(类)-->扩展-->com.mysql.jdbc.ConnectionPropertiesImpl(类)-->实现-->com.mysql.jdbc.MySQLConnection(接口)-->扩展-->com.mysql.jdbc.Connection(接口)-->扩展-->java.sql.Connection(接口)
com.mysql.jdbc.ResultSetImpl(类)-->实现-->com.mysql.jdbc.ResultSetInternalMethods(接口)-->扩展-->java.sql.ResultSet(接口)
它们在oracle jdbc驱动程序中实现。您正在使用的类。您正在实例化的类,位于=