所有JDBC插件都兼容吗?

时间:2016-07-12 10:35:38

标签: java jdbc

这只是一个理论问题,但我正在构建一个使用CDATA JDBC插件从Facebook获取数据的程序,我想知道所有JDBC插件是否具有相同的语法。例如,如果我只是将驱动程序的JAR文件更改为Twitter,并更改我正在访问的表和列的名称,它是否仍然可以工作?

通过插件,我的意思是一个驱动程序,也是,更明确地说,如果我正在开发MySQL应用程序并从库存Connector / J驱动程序切换到CData驱动程序,我是否需要更改代码?

3 个答案:

答案 0 :(得分:1)

在您存储的基础架构保持不变之前,使用JDBC驱动程序将产生相同的结果。 Note: Twitter/FB... both has to support the JDBC Model... 但是,如果您在驱动程序中进行了更改,则可以考虑使用ApacheMetamodel Link for reference

答案 1 :(得分:1)

JDBC是多年来建立和审查的标准。只要你正在使用的驱动程序写入该标准(作为CData员工,我可以说我们的那些),你可以期望引用JDBC驱动程序的代码基本相同,无论制造商是谁您正在连接的驱动程序或数据源。

//optional, register the driver with the DriverManager
Class.forName(myDriverName).newInstance();

//obtain a Connection instance from the DriverManager
Connection conn = null;
try {
  conn = DriverManager.getConnection(myJDBCurl);

  //execute a select query
  Statement stmt = conn.createStatement();
  Result rs = stmt.executeQuery("SELECT foo FROM bar");
} catch (SQLException ex) {
  //handle any errors
}

正如您所看到的,利用JDBC驱动程序的代码可以使用变量进行推广,以使用任何驱动程序或在单个驱动程序下使用不同的连接(例如,如果您想连接到不同的Facebook帐户)。 / p>

答案 2 :(得分:0)

JDBC是一个有趣的标准。它故意设计为在运行时加载驱动程序,因此在编译期间不使用供应商类。

它还有一些JDBC自己的架构数据机制(DatabaseMetaData),以及使用自动增量键执行INSERT和检索该键(getGeneratedKeys)等事情。

然而,尽管标准化努力,但SQL远远没有被供应商标准化。例如,只获取前10行。

不幸的是,JDBC的幻想家似乎不再存在。 但它是专业使用的良好基础。