【发布时间】:2017-11-02 08:08:46
【问题描述】:
使用 JDBC 有一些限制,而数据库依赖是这些限制之一。
是否有任何模式或方法可以在 JDBC 中实现数据库独立性(不使用任何其他 ORM 框架或工具)。
我尝试通过动态多态(为不同的 DBMS 创建特定的类并根据特定的 SQL 语法覆盖常见的 CRUD 操作)来实现这一点。
例如,有没有办法编写通用的 SQL 语句,以便它们可以在几乎所有与 SQL 相关的 DBMS 中执行?
【问题讨论】:
-
ORM 正是这样做的(除了许多其他方便的功能)。你试过JPA吗?
-
id say
CriteriaQuery非常通用,但它需要 JPA,它是一个 ORM -
我认为您不应该使用覆盖特定 SQL 语法的 CRUD 操作的类。有已建立的工具,JPA(接口),Hibernate(一种实现),Spring-data(默认的 CRUD 操作很容易)。不要重新发明轮子。在简单的情况下,您可以尝试使用 JDBC,但仅使用您部署的所有数据库都支持的 SQL 子集。 (ANSI sql-92 可以作为起点)。
-
你好!我只能通过 JDBC 来实现它。
-
你能详细说明什么是 ANSI SQL 吗?我的意思是我知道正常的 SQL 语句,并且我知道如何在 MySQL 上执行 CRUD 操作(包括连接),但什么是 ANSI SQL ?是不是一组规则或标准,我们可以根据这些规则或标准生成适用于任何 SQL DBMS 的通用 SQL??