PDF.NET 数据开发框架

之SQL-MAP代码生成工具 详细使用介绍

(PDF.NET 2.0 工具介绍,3.0 工具使用过程类似)

首先打开SQL-MAP文件生成器(SQL-MAP配置管理管理程序),单击“配置管理”按钮。

然后新建一个SQLMAP文件

在新建文件选项卡,浏览要保存文件的路径,然后输入文件名,如图,此时“确定”按钮由灰色变成可用状态。

 

单击“数据库类型”选项卡,系统默认的数据库类型是Access,我们不管它,在左边的列表中选择一个SqlServer,单击向右箭头按钮。

选择上图右边的数据库类型,单击“命令组”选项卡,例如当前选择的是SqlServer

在命令组属性里面输入信息,然后单击“添加”按钮,

在单击确定按钮以后,提示“增加成功”,最后“取消”或者关闭本窗口。

修改命令组:

首先在主窗体打开刚才新建的文件,然后单击配置管理按钮;

然后在数据库类型中选择SqlServer,双击选择项,切换到“命令组”选项卡,现选择左边的命令组,然后再右边的命令组属性中输入新的内容,接着单击“修改”按钮,这时候“确定”按钮变成可用状态,最后确定。

 

 

 

打开数据库,我这里选择Northwind数据库的产品表,

然后我们以产品分类为条件,查询记录,这里假设分类号为2 。我们将这条SQL语句先复制出来备用。

 

 

将前面复制的SQL语句粘贴到SQL文本框中,我们这里为具体的分类号做一个参数名 @CatagoryID,然后单击“参数生成器”;

在参数生生成器窗口,单击参数分析,在参数信息表中输入参数的数据类型,其它可选。

确定参数设置以后,关闭上一个窗口,自动回到主窗口,SQLMAP脚本被高亮选择,注意生成的参数格式 为 #参数名:参数类型#

切换光标到网格的下一空白行,然后单击保存按钮,确认保存。

最后,打开刚才建立的SqlMap.config文件,查看一下保存的内容:

<?xml version="1.0" encoding="utf-8"?>

<!--

PWMIS SqlMap Ver 1.0.2 ,2006-11-22,http://www.pwmis.cn/SqlMap/

Config by SqlMap Builder,Date:2010-6-23

-->

<SqlMap>

<Script Type="Access" Version="2000,2002,2003" />

<Script Type="SqlServer" Version="2000,2002,2003">

<CommandClass Name="测试1" Class="TestClass1" Description="我的第一个测试类">

<Select CommandName="产品分类" CommandType="Text" Method="ProductClass" Description="获取产品分类" ResultClass="DataSet">

<![CDATA[

SELECT *

FROM Products

WHERE (CategoryID=#CategoryID:Int32#)

]]></Select>

</CommandClass>

</Script>

</SqlMap>

 

到现在为止,我们的第一个SQL-MAP文件配置完成了,接下来就是用代码生成器生成我们的DAL代码了。

打开 Tools 目录的文件 PDFCodeMaker.exe.config,修改代码生成配置信息:

<!--代码模板路经 -->

<add key="CodeTemplatePath" value=""></add>

<!--SqlMap 配置文件路径-->

<add key="SqlMapConfigFile" value="F:\SqlMap.config"></add>

<!--输出文件目录 -->

<add key="OutPutPath" value="F:\"></add>

<!--根名称空间 -->

<add key="RootNameSpace" value="TestDAL"></add>

<!--目录代码语言:VB/CSharp -->

<add key="CodeLanguage" value="CSharp"></add>

<!--是否重新上次生成的代码 -->

<add key="ReWrite" value="True"></add>

注:还可以配置生成VB.NET代码。

 

然后运行 Tools目录的程序 PDFCodeMaker.exe ,程序运行结果如下:

大家注意,生成的文件名 就是我们刚才配置文件中的 <CommandClass Name="测试1" 的指定的信息,每一个CommandClass 都对应一个DAL类文件。

下面我们来看看这个类文件的具体内容:

//使用该程序前请先引用程序集:PWMIS.SqlMapper,并且下面定义的名称空间前缀不要使用PWMIS

using System;

using System.Data;

using PWMIS.SqlMapper;

namespace TestDAL.SqlServerDAL

{

/// <summary>

/// 文件名:TestClass1.cs

/// 类 名:TestClass1

/// 版 本:.0

/// 创建时间:-6-23 23:55:48

/// 用途描述:我的第一个测试类

/// 其它信息:该文件由PDF.NET Code Maker 自动生成,修改前请先备份!

/// </summary>

public partial class TestClass1

: PWMIS.SqlMapper.DBMapper

{

/// <summary>

/// 默认构造函数

/// </summary>

public TestClass1()

{

Mapper.CommandClassName = "测试";

//CurrentDataBase.DataBaseType=DataBase.enumDataBaseType.SqlServer;

}

 

/// <summary>

/// 获取产品分类

/// </summary>

/// <param name="CategoryID"></param>

/// <returns></returns>

public DataSet ProductClass(Int32 CategoryID )

{

//获取命令信息

Mapper.GetCommandInfo("产品分类");

//参数赋值,推荐使用该种方式;

Mapper.DataParameters[0].Value = CategoryID;

//参数赋值,使用命名方式;

//Mapper.SetParameterValue("@CategoryID", CategoryID);

//执行查询

return CurrentDataBase.DAO.ExecuteDataSet(CurrentDataBase.ConnectionString, Mapper.CommandType, Mapper.CommandText , Mapper.DataParameters);

//

}//End Function

 

}//End Class

}//End NameSpace

看到了吗?我们的类名称,方法名称,参数名称和类型,方法的返回值,都跟我们的SQL-MAP 配置文件一一对应起来了。

这样,我们可以始终关注于我们的业务,我们的SQL语句,可以不用写一行DAL代码,因此,我们的口号是

让DBA去写(DAL)程序吧!