有哪些关于不同JDBC数据库之间技术区别的信息

时间:2016-07-13 14:42:09

标签: apache jdbc derby mariadb

我正在使用多个不同的SQL数据库运行带有多个数据库的Web服务器(Java / Tomcat / JDBC)。目前我已经实现了旧的Borland JDatastore,Apache Derby,PostgresSQL,MariaDB,Microsoft SQLServer,SqlLite,Firebird和ISeries。

我希望能够使用不同的数据库运行服务器,而无需在它们之间进行大量重新编程。否则就无法进行适当的比较。

不同服务器之间存在很多实质性差异。例如,似乎MariaDB(以及MySQL)不使用许多ResultSet函数(例如MoveToInsertRow)进行更新。我假设这是因为他们希望人们使用PreparedStatement,但这不是明确的,并且使它实质上不兼容。

我发现在Derby中,默认的Autocommit似乎不允许在要更新的表上获得结果集后访问第二个表。然而,这似乎只适用于Derby,因为JDatastore很乐意处理许多打开的表而不会丢失任何一个上的光标。关闭自动提交已经解决了这个问题,但它似乎有点奇怪。

还有一些DB实现所有SQL类型(包括布尔值)的困难,而某些DB则没有。

问题1: 有谁知道可以在一个地方找到的数据库的详细比较?

问题2: MariaDB是否真的不允许将ResultSet用于更新目的?这有什么理由吗?我检查过源代码,看起来确实如此?

问题3: 如果你打开另一个表甚至是只读的话,我在Derby中遇到了错误,它似乎会从为更新打开的结果集中丢失光标。 (默认情况下自动提交)。

0 个答案:

没有答案