第一种方式:
hibernate.cfg.xml文件中的hibernate.hbm2ddl.auto 属性配置,如下:
<!-- create:先删除,再创建 update:如果表不存在就创建,不一样就更新,一样就什么都不做。 create-drop:初始化时创建表,SessionFactory执行close()时删除表。 validate:验证表结构是否一致,如果不一致,就抛异常。 --> <property name="hibernate.hbm2ddl.auto">update</property>
第二种方式:
使用hibernate提供的一个工具类。
org.hibernate.tool.hbm2ddl.SchemaExport
用法见如下demo代码:
package com.yx.jtest; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class Test { public static void main(String[] args) { // 根据hibernate核心配置文件生成表结构 Configuration cfg = new Configuration(); cfg.configure("hibernate.cfg.xml"); SchemaExport schemaExport = new SchemaExport(cfg); boolean script = true; boolean export = true; /** * 创建表结构 * 第一个参数script的作用:print the DDL to the console * 第二个参数export的作用:export the script to the database */ schemaExport.create(script, export); // drop 表结构 // schemaExport.drop(script, export); } }
SchemaExport的更多用法,可以去看源码或java doc
相关推荐
在这种情况下,Hibernate可以根据实体类自动创建对应的`User`和`Role`表,以及它们之间的关联。 总结,Hibernate的动态生成表结构功能极大地方便了开发过程,减少了手动创建和维护数据库表的工作量。通过正确配置...
Hibernate提供了两种主要的查询方式:离线查询(Criteria API)和HQL(Hibernate Query Language)语句查询。这两种查询方法各有特点,适用于不同的场景,使得开发者可以根据实际需求灵活选择。 1. Hibernate ...
1. 生成实体类:在MyEclipse中,我们可以根据数据库表结构自动生成实体类。通过“Source” -> “Generate Hibernate Classes from Database”选项,选择对应的数据库表,MyEclipse会自动为每个字段生成getter和...
- Hibernate使用两种方式实现对象-关系映射:XML文件和注解。通常,注解更简洁,更易于维护。实体类上的注解如`@Column`、`@OneToMany`、`@ManyToOne`等,定义了对象间的映射关系。 4. **使用Hibernate工具自动...
总之,单一表继承策略是一种简单且直观的Hibernate继承映射方式,适合类继承层次结构不深且子类数量较少的情况。但在大型项目或复杂的类继承结构中,可能需要考虑其他策略,如`JOINED`或`TABLE_PER_CLASS`。理解并...
SchemaExportTask允许从映射文件自动生成数据库表结构,而Hbm2JavaTask则可以生成Java实体类,这两个工具大大简化了数据库和代码的同步工作,提高了开发效率。 通过深入理解上述知识点,初学者可以快速掌握...
5. **Querying**:Hibernate支持两种查询方式:HQL(Hibernate Query Language)和Criteria API。HQL是面向对象的查询语言,类似于SQL但更加面向对象。Criteria API则提供了一种动态构建查询的方式,更适合在运行时...
对于Oracle数据库来说,如果`hibernate.hbm2ddl.auto`设置为`create`,并且表结构中有依赖于序列的字段,则需要确保已经创建了相应的序列,否则会报错。 #### 五、总结 通过以上内容可以看出,在Oracle环境下使用...
混合使用“每个类分层结构一张表”和“每个子类一张表” 9.1.5. 每个具体类一张表(Table per concrete class) 9.1.6. Table per concrete class, using implicit polymorphism 9.1.7. 隐式多态和其他继承映射...
6. **事务管理**:Hibernate支持JTA和JDBC两种事务管理方式。在代码中,可以使用Session的beginTransaction(), commit()和rollback()方法进行手动事务控制。 7. **HQL(Hibernate Query Language)**:Hibernate...
两种方式各有优势,可以根据项目需求选择合适的映射方式。 在项目中,可能还会包含以下内容: 1. **数据库连接池**:例如使用Apache的DBCP或C3P0,它们能够有效地管理数据库连接,提高系统的性能。 2. **DAO(Data ...
逆向工程则是指从已有的数据库表结构出发,生成对应的Java实体类和Hibernate映射文件的过程。 **步骤详解:** 1. **准备数据库:** - 创建一个名为`TestDB`的数据库,并在其中创建一张名为`User`的表。 2. **...
8. **事务管理**:Hibernate支持JTA和JDBC两种事务管理方式,确保数据操作的原子性、一致性、隔离性和持久性。 9. **关联映射**:Hibernate支持一对一、一对多、多对一、多对多等各种关联关系的映射,如`@OneToOne`...
Hibernate提供HQL(Hibernate Query Language)和Criteria API进行对象级别的查询,这两种方式比直接写SQL更加面向对象,更加安全且易于维护。 7. **缓存机制** Hibernate的缓存分为一级缓存(Session级别)和二...
Criteria查询和HQL是Hibernate提供的两种面向对象的查询方式,可以更直观地表达查询逻辑。 **3. Hibernate教程(hibernate教程.ppt、hibernate教程(总).pptx)** 这些教程可能详细介绍了如何配置和使用Hibernate...
数据无需创建自动生成,可能指的是使用了Hibernate的自动建表功能,或者利用了某种数据库初始化脚本来快速生成表结构。这减少了开发者手动创建数据库表的工作量,使得项目能更快地进入实际开发阶段。 在实际应用中...
Hibernate支持两种查询方式:HQL(Hibernate Query Language)和Criteria API。 - **HQL**:HQL是一种面向对象的查询语言,语法类似于SQL,但它是针对对象而不是表进行操作的。HQL支持查询、更新和删除操作,并且...
2. **生成Hibernate配置文件**:使用Hibernate的SchemaExport工具,我们可以根据实体类生成数据库表结构,或者根据现有数据库结构生成映射文件。 3. **编译源代码**:确保所有Hibernate相关的类被正确编译。 4. **...
- 安装方法通常包括在线安装和离线安装两种方式。 ##### 2.2 Eclipse IDE - **Eclipse**是最常用的集成开发环境之一,支持多种插件扩展。 - **使用Eclipse WTP**:Web Tools Platform (WTP) 是Eclipse的扩展,提供...