0

我想制作java代码,在3-4个DBMS中创建一个示例数据库,比如安装在任何操作系统上的mysql、oracle sql、sql server等——windows、linux发行版、Mac OS等。

我怎样才能使我的代码:

  1. 自动(或在用户的帮助下)在计算机中找到 jdbc 驱动程序。
  2. 执行一组固定的 sql 命令,无论使用何种 DBMS,这些命令都将起作用。

请建议我如何做所有这些事情。

编辑:这将是一个后端类型的应用程序。我对 JDBC 有点陌生,所以我正在寻找简单/基本的解决方案。稍后将切换到高级。

谢谢。

4

3 回答 3

3
  1. 将所有受支持数据库的驱动程序与您的程序捆绑在一起。用户不必处理 JDBC 驱动程序或连接字符串。(提供一个 UI 来编辑后者,这可能因数据库而异。)
  2. 使用 ORM(如Hibernate);或者,如果您不需要使用数据填充数据库,则可以使用数据库迁移库(如Flyway
于 2012-08-01T21:49:31.197 回答
2

1、看这里...如何从任意位置使用 JDBC 驱动程序

2、不同的DBMS使用相似但不相同的语法。您至少有 3 个选项:

  • 仅使用您感兴趣的所有 DBMS 支持的 sql 命令;

  • 嗅探 DBMS 并相应地修改您的 SQL 语句;

  • 使用带有 SQL 抽象层的框架(例如 Java Persistence API 的 JPQL)。我怀疑这对你所追求的来说可能太多了。

于 2012-08-01T22:02:35.887 回答
0

如果你想让用户找到JDBC驱动,那么你需要处理ClassLoaders和实现自定义的ClassLoaders,这不是一件简单的事情。或者你应该使用一个应用服务器来为你处理这个。

否则,您的类路径中将拥有所有可用的 JDBC 驱动程序。

顺便说一句,JDBC 是与大多数使用 SQL 的 RDBMS 一起工作的适配器,每个数据库提供程序都对其 SQL 进行了供应商特定的定制。例如,您在 Oracle 中有序列,在 MySQL 中有自动编号。或者您可以limit在 Oracle 中不可用的 MySQL 查询中使用。这个问题的解决方案是做 Hibernate 所做的事情(使用方言来处理数据库供应商特定的东西。)

于 2012-08-01T22:08:07.063 回答