这只是一个理论问题,但我正在构建一个使用CDATA JDBC插件从Facebook获取数据的程序,我想知道所有JDBC插件是否具有相同的语法。例如,如果我只是将驱动程序的JAR文件更改为Twitter,并更改我正在访问的表和列的名称,它是否仍然可以工作?
通过插件,我的意思是一个驱动程序,也是,更明确地说,如果我正在开发MySQL应用程序并从库存Connector / J驱动程序切换到CData驱动程序,我是否需要更改代码?
答案 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的幻想家似乎不再存在。 但它是专业使用的良好基础。