我必须(在服务器1中)编写一个将生成SQL的应用程序。SQL将被传输到某个不同的服务器(服务器2)。部署在服务器2上的另一个应用程序将在部署在服务器2上的数据库上运行查询。
现在可以有不同类型的数据库,查询将不是一个简单的查询(可能有200行查询)。有没有可以用来创建查询的第三方应用程序(如Hibernate)可以是不同的格式(如HQL),可以传输到服务器2,服务器2上的应用程序会将其转换为特定于数据库的SQL并运行它?
我正在使用Spring & Java 8来编写应用程序。
提前谢谢。
发布于 2018-11-19 11:59:38
对于原生sql查询是不可能。但是,如果您使用任何ORM技术,如Hibernate,那么这是可能的。Hibernate dailect将为您生成不同的数据库特定查询。虽然hibernate是一种ORM技术,但它将定义与表示数据库表的对象之间的关系,通常我们称之为实体。所以如果你想使用不同的数据库,那就没有问题了。但您必须为不同的数据库更改dailelect。
发布于 2018-11-19 12:06:18
为什么不使用ORM - JPA或Hibernate,并将查询移动到可配置的不同XML,这适用于每个平台/数据库?部署基于数据库的XML ...
这里没有捷径,但如果您使用ANSI SQL标准,它是独立于平台的,并用作大多数数据库系统的基础,包括Microsoft SQL Server,Oracle,MySQL,IBM等,您的查询应该几乎没有任何问题。显然,您会忽略DB提供的附加功能。
https://stackoverflow.com/questions/53374059
复制相似问题