通常我们使用生成数据库架构代码实例像这样:Configuration cfg=new Configuration();
cfg.Configure(“”);
SchemaExport export =new SchemaExport(cfg);
export.Execute(....);
1.准备工作
现在数据访问测试层新建一SchemaExportFixture.cs文件用于测试生成实战。声明一个全局变量_cfg,编写 [SetUp]方法在每个测试方法执行之前调用:[TestFixture]
public class SchemaExportFixture
{
private Configuration _cfg;
[SetUp]
public void SetupContext()
{
_cfg = new Configuration();
_cfg.Configure();
}
//测试......
}
2.测试Drop(script, export)方法[Test]
public void DropTest()
{
var export = new SchemaExport(_cfg);
export.Drop(true, true);
}
Drop(script, export)方法根据持久类和映射文件执行删除数据库架构。有两个参数,第一个为True就是把DDL语句输出到控制台,第二个为True就是根据持久类和映射文件执行删除数据库架构操作,经过调试可以发现Drop(script, export)方法其实质是执行了Execute(script, export, true, true)方法。
3.测试Create(script, export)方法[Test]
public void CreateTest()
{
var export = new SchemaExport(_cfg);
export.Create(true, true);
}
Create(script,export)方法根据持久类和映射文件先删除架构后创建删除数据库架构。有两个参数,第一个为True就是把DDL语句输出到控制台,第二个为True就是根据持久类和映射文件先执行删除再执行创建操作,经过调试可以发现这个方法其实质是执行Execute(script,export, false, true)方法。
4.测试Execute(script, export, justDrop, format)方法[Test]
public void ExecuteTest()
{
var export = new SchemaExport(_cfg);
export.Execute(true, true, false, false);
}
Execute(script, export, justDrop, format)方法根据持久类和映射文件先删除架构后创建删除数据库架构。有四个参数,第一个为True就是把DDL语句输出到控制台;第二个为True就是根据持久类和映射文件在数据库中先执行删除再执行创建操作;第三个为false表示不是仅仅执行Drop语句还执行创建操作,这个参数的不同就扩展了上面两个方法;第四个参数为false表示不是格式化输出DDL语句到控制台,是在一行输出的。
所谓格式化输出就像这样:
一行输出就像这样:
5.测试Execute(script, export, justDrop, format, connection, exportOutput)方法[Test]
public void ExecuteOutTest()
{
var export = new SchemaExport(_cfg);
var sb = new StringBuilder();
TextWriter output = new StringWriter(sb);
export.Execute(true, false, false, false, null, output);
}
Execute(script, export, justDrop, format, connection, exportOutput)方法根据持久类和映射文件先删除架构后创建删除数据库架构。有六个参数,第一个为True就是把DDL语句输出到控制台;第二个为false就是不执行DDL语句;第五个为自定义连接。当export为true执行语句时必须打开连接。该方法不关闭连接,null就是使用默认连接,最后一个参数自定义输出,这里我输出到TextWriter中。
分享到:
相关推荐
本篇文章将详细介绍如何利用Hibernate中的`SchemaExport`工具来自动生成数据库表,以此来简化数据库设计过程,提高开发效率。 首先,我们需要了解Hibernate的逆向工程(Reverse Engineering)。在传统的开发流程中...
在标题和描述中提到的“nhibernate 由类文件,映射文件自动生成表的 源代码”,指的是使用NHibernate的SchemaExport工具或编程方式,根据定义的类和映射文件自动创建数据库表的机制。以下是对这个主题的详细解释: ...
15. **SchemaExport工具**:SchemaExport工具可以帮助开发者生成数据库模式或更新现有数据库。这一章节会详细介绍如何使用SchemaExport工具。 16. **对象状态**:NHibernate中每个持久化对象都有其生命周期状态,...
1. **使用Hibernate的工具hbm2ddl根据你的对象建立数据库SchemaExport.doc** Hibernate的hbm2ddl工具能够根据实体类(即你的对象)和对应的映射文件(.hbm.xml)自动生成数据库模式。SchemaExport是这个工具的一个...
最新hibernate 版本5.2.11.final--最新hibe--最新hibernate 版本5.2.11.finalrnate 版本5.2.11.final--最新hibernate 版本5.2.11.final
6. **数据库表的生成**: 一旦映射文件准备好,开发者可以使用Hibernate的`SchemaExport`工具,依据映射文件生成或更新数据库表结构。这个GUI工具可能会包含一键生成表的功能,使整个过程更加便捷。 7. **逆向工程**...
5. **更新数据库表**:在生成映射文件后,还可以结合Hibernate的SchemaExport工具生成或更新数据库表结构。 这样的自动化过程可以帮助开发者节省大量时间,并且减少人为错误。在实际开发中,例如使用Eclipse或...
8. **工具支持**(14_工具.ppt):介绍Hibernate提供的工具,如SchemaExport工具用于生成数据库表结构,Hibernate Console工具辅助开发等。 这些课件内容旨在帮助学习者全面理解Hibernate的工作原理,掌握其基本...
接着,`SchemaExport`类是Hibernate提供的工具类,用于处理数据库的创建、更新和验证。在这段代码中,`new SchemaExport(config)`创建了一个`SchemaExport`对象,`config`参数传递了数据库配置信息。`schemaExport....
3. **使用Hibernate工具**: Hibernate提供了SchemaExport或HibernateTool工具,可以读取hbm.xml文件并生成相应的DDL语句。例如,`SchemaExport.create(true, true)`将执行CREATE命令,而`SchemaExport.drop(true, ...
Hibernate提供了一些实用工具,如SchemaExport工具可以生成数据库脚本,hibernatetool可以进行反向工程,自动生成Java实体类等。 总结,Hibernate的学习涵盖了从基础的配置、实体映射到复杂的继承策略、查询机制,...
至于“工具”标签,可能是指Hibernate提供的工具集,包括SchemaExport工具可以用来根据实体类生成数据库表结构,Hibernate Inspector则是一个用于查看和调试Hibernate配置的实用程序。这些工具在开发和调试过程中能...
2. **扩展Hibernate的SchemaExport工具**:Hibernate的SchemaExport类用于处理DDL生成。我们可以创建一个自定义的SchemaExport类,覆盖其generate方法,添加额外的逻辑来检查并插入version字段。这通常涉及到解析元...
- SchemaExport 工具可以帮助开发者生成数据库表结构,支持创建、更新、删除等操作。 #### 二、事务与并发控制 **2.1 定义事务** - 事务是数据库操作的基本单位,保证了数据的一致性和完整性。 **2.2 物理事务*...
- 如何使用SchemaExport工具来创建或更新数据库模式。 以上内容总结了《NHibernate应用讲解》PDF文档中的主要知识点,涵盖了从NHibernate的基本概念到高级特性的详细介绍。通过学习这些内容,开发者可以更好地掌握...
6. **SchemaExport工具**:`org.hibernate.tool.hbm2ddl.SchemaExport`工具可用于根据`.hbm.xml`文件自动生成数据库表结构,简化了数据库初始化和维护工作。 #### 实践步骤详解 - **环境搭建**:首先,需确保已...
其中,最具吸引力的是它的`SchemaExport`和`SchemaUpdate`工具,这两个工具能够根据配置的实体类自动生成数据库的DDL脚本,或者直接在现有的数据库上更新表结构。此外,hibernate-extensions还支持动态代理,允许...
- **Java 环境**:确保安装了 Java 开发工具包 (JDK)。 - **Hibernate 库**:添加 Hibernate 相关依赖至项目中。 - **数据库**:选择一个支持的数据库(例如 MySQL)并配置好连接信息。 2. **配置文件**: - **...
在这次的操作中,我们利用Hibernate提供的SchemaExport工具来生成SQL脚本。SchemaExport是Hibernate的一个内置类,它使用配置文件(hibernate.cfg.xml)作为参数来构建数据库表结构。SchemaExport类提供了一个create...
手册还会涵盖一些高级特性,如CGLIB和JPA支持、延迟加载(Lazy Loading)、级联操作(Cascading)、事件监听器、性能调优以及Hibernate工具(如SchemaExport工具,用于生成数据库表结构)等。 七、最佳实践与案例...