我正在 Spring 上用 java 构建更大的项目,很多人建议我使用 hibernate 来简化对数据库的访问。问题是,我必须使用这个项目以前版本的数据库,它曾经是用 PHP 编写的,所以他们肯定没有使用休眠。我读过一些关于休眠的东西,但我仍然不确定一件事——它是否必须改变数据库的结构,或者我可以使用标准的 MySQL 数据库,并将值存储在 int、varchar 和其他类型中,并且只使用休眠摆脱我的java代码中的大量SQL?
3 回答
Hibernate 是一个高度成熟的项目,并且绝对可以与现有模式很好地配合。您甚至可以使用Hibernate 工具从现有模式生成您的类实体。
仍然有一个重要的地方需要小心:Hibernate 支持复合主键和外键,但使用技术生成的 id 会更轻松。
如果我有一个带有形成自然 id 的复合主键的模式,我会考虑在使用 Hibernate 之前用技术自动生成的 id 替换它们。
虽然 Hibernate 可用于创建/删除表,但通常您不会在生产环境中这样做。在这些场景中,您将定义 POJOS 和底层数据库模式之间的对象关系映射。因此,实际上,Hibernate 不需要向数据库模式添加任何内容。
如果您使用的是在应用 hibernate 之前定义的模式,您可能需要确保字段转换器是适当的(即,Hibernate 可能对 SQL 中的哪些列类型构成日期或数字有不同的想法),但这意味着您必须提供显式映射/转换器而不是使用默认值。
但是,您应该能够使用 Hibernate,而无需对现有数据库模式进行任何重大更改。
Hibernate is best and easy for connection purpose.. You can use it without affecting your current structure of database. You can also use annotation in hibernate, it's very simple and easy. Take one thing in mind, You have to add proper mapping in hibernate configuration file! It is a better idea to backup your whole database before you will go with hibernate.