我只是想知道有没有办法编写可以在所有数据库中运行的sql查询,如果我从Oracle切换到我的sql或其他一些数据库,我不需要更改我的Sql查询,
Hibernate会在这种情况下提供帮助,如果有帮助的话? 我不知道有什么关于冬眠的事情,请解释一下它会有什么帮助。
由于 苏达
答案 0 :(得分:1)
Hibernate使用对象关系映射。因此,您不需要更改代码或查询使用hibernate.only只需要在关系映射xml和实体中定义表关系。
但它不会在所有地方都有效。 如果你有复杂的关系查询意味着你可以在sepearte xml中编写,你可以从xml中读取查询。但是当你切换数据库时,你需要根据你不需要更改代码的Sql语法修改xml查询。
答案 1 :(得分:0)
Hibernate创建和对象关系映射。也就是说它将表视为对象。 所以我们使用HQL来查询对象而不是数据库。 Hibernate负责所有这些。
另一个选项是让您在外部文件中查询。因此,根据数据库,您可以切换文件,不需要更改代码。这不是一个被广泛接受的解决方案
答案 2 :(得分:0)
ORM是您的解决方案,它将在数据库上创建一个单独的层。该层将与您的数据库进行交互。如果要将数据库从Oracle更改为MySql,只需更改XML文件即可完成。
试试本教程:绝对会帮助你:http://www.youtube.com/watch?v=GINvxAaXDbY