SchemaExport工具实战(hibernate)
SchemaExport工具实战
通常我们使用生成数据库架构代码实例像这样:Configurationcfg=newConfiguration();
cfg.Configure(“”);
SchemaExportexport=newSchemaExport(cfg);
export.Execute(....);
1.准备工作
现在数据访问测试层新建一SchemaExportFixture.cs文件用于测试生成实战。声明一个全局变量_cfg,编写[SetUp]方法在每个测试方法执行之前调用:[TestFixture]
publicclassSchemaExportFixture
{
privateConfiguration_cfg;
[SetUp]
publicvoidSetupContext()
{
_cfg=newConfiguration();
_cfg.Configure();
}
//测试......
}
2.测试Drop(script,export)方法[Test]
publicvoidDropTest()
{
varexport=newSchemaExport(_cfg);
export.Drop(true,true);
}
Drop(script,export)方法根据持久类和映射文件执行删除数据库架构。有两个参数,第一个为True就是把DDL语句输出到控制台,第二个为True就是根据持久类和映射文件执行删除数据库架构操作,经过调试可以发现Drop(script,export)方法其实质是执行了Execute(script,export,true,true)方法。
3.测试Create(script,export)方法[Test]
publicvoidCreateTest()
{
varexport=newSchemaExport(_cfg);
export.Create(true,true);
}
Create(script,export)方法根据持久类和映射文件先删除架构后创建删除数据库架构。有两个参数,第一个为True就是把DDL语句输出到控制台,第二个为True就是根据持久类和映射文件先执行删除再执行创建操作,经过调试可以发现这个方法其实质是执行Execute(script,export,false,true)方法。
4.测试Execute(script,export,justDrop,format)方法[Test]
publicvoidExecuteTest()
{
varexport=newSchemaExport(_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]
publicvoidExecuteOutTest()
{
varexport=newSchemaExport(_cfg);
varsb=newStringBuilder();
TextWriteroutput=newStringWriter(sb);
export.Execute(true,false,false,false,null,output);
}
Execute(script,export,justDrop,format,connection,exportOutput)方法根据持久类和映射文件先删除架构后创建删除数据库架构。有六个参数,第一个为True就是把DDL语句输出到控制台;第二个为false就是不执行DDL语句;第五个为自定义连接。当export为true执行语句时必须打开连接。该方法不关闭连接,null就是使用默认连接,最后一个参数自定义输出,这里我输出到TextWriter中。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liyangbing315/archive/2009/10/24/4724142.aspx