Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
com.mysql.jdbc.ResultSetMetaData;vs java.sql.ResultSetMetaData;_Java_Mysql_Jakarta Ee - Fatal编程技术网

com.mysql.jdbc.ResultSetMetaData;vs java.sql.ResultSetMetaData;

com.mysql.jdbc.ResultSetMetaData;vs java.sql.ResultSetMetaData;,java,mysql,jakarta-ee,Java,Mysql,Jakarta Ee,我正在使用tomcat7、Java1.6访问带有com.mysql.jdbc.Driver的mysql数据库。我打算从一个表中获取元数据,比如 java.sql.ResultSet set=getStuff(); ResultSetMetaData meta = set.getMetaData(); 问题是,set.getMetaData返回java.sql.ResultSetMetaData但是我将mysql与jdbc一起使用,所以它不应该返回com.mysql.jdbc.ResultSet

我正在使用tomcat7、Java1.6访问带有
com.mysql.jdbc.Driver
的mysql数据库。我打算从一个表中获取元数据,比如

java.sql.ResultSet set=getStuff();
ResultSetMetaData meta = set.getMetaData();

问题是,set.getMetaData返回
java.sql.ResultSetMetaData
但是我将mysql与jdbc一起使用,所以它不应该返回
com.mysql.jdbc.ResultSetMetaData?我输入的东西有问题吗?如果不是,什么时候将
com.mysql.jdbc.ResultSetMetaData可以使用还是有什么区别?

驱动程序的作用实际上是抽象数据库特定代码的使用。 因此,您只需指定驱动程序,然后与不依赖于数据库的api交互

如果仔细观察,您会发现
com.mysql.jdbc.ResultSetMetaData
是接口
java.sql.ResultSetMetaData
的实现

为了实现解耦,最好使用接口(这样就不会在代码中绑定到特定的数据库)