com.mysql.jdbc.ResultSetMetaData;vs java.sql.ResultSetMetaData;
我正在使用tomcat7、Java1.6访问带有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
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
的实现
为了实现解耦,最好使用接口(这样就不会在代码中绑定到特定的数据库)