生成数据表的映射文件 for iBATIS.NET
2005-11-02 17:04
344 查看
Filename: MappingFile.cst
<%--
Code Generator for iBATIS.NET 1.2.1
功能描述: 生成数据表的映射文件
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" LinePragmas="True" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="DataSource"
Description="选择一个数据表" %>
<%@ Property Name="TableRename" Type="String" Category="DataSource"
Description="如果不需要表名到类名的重命名, 请保留空" %>
<%@ Property Name="Assemble" Type="String" Category="Main"
Description="程序集名称" %>
<%@ Property Name="Namespace" Type="String" Category="Main"
Description="类所在的命名空间" %>
<%@ Property Name="DeveloperName" Type="String" Category="Main"
Description="作者" %>
<?xml version="1.0" encoding="utf-8" ?>
<sqlMap
namespace="<%= ClassName %>"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="SqlMap.xsd">
<!--
Created: <%= DateTime.Now.ToShortDateString() %> Author: <%= DeveloperName %>
File: <%= ClassName %>.xml
Description: 数据表 <%= TableName %> 的映射文件, 使用 CodeSmith 自动生成.
-->
<alias>
<typeAlias alias="<%= ClassName %>" type="<%= Namespace %>.<%= ClassName %>, <%= Assemble %>" />
</alias>
<!-- 返回结果的类属性与数据库字段映射 -->
<resultMaps>
<resultMap id="SelectResult" class="<%= ClassName %>">
<%= GetResultProperty() %>
</resultMap>
</resultMaps>
<!-- 数据库操作定义块 -->
<statements>
<select id="selectAll" parameterClass="string" resultMap="SelectResult">
select *
from [<%= TableName %>]
</select>
<select id="select" parameterClass="string" resultMap="SelectResult">
select *
from [<%= TableName %>]
where <%= GetPrimaryKey() %>=#value#
</select>
<insert id="insert" parameterClass="<%= TableRename %>" resultClass="int">
insert into [<%= TableName %>]
(<%= GetInsertColumnList(false) %>)
values
(<%= GetInsertColumnList(true) %>)
<selectKey resultClass="int" type="post" property="<%= GetPrimaryKey() %>">
select @@IDENTITY as value
</selectKey>
</insert>
<update id="update" parameterClass="<%= TableRename %>" resultClass="int">
update [<%= TableName %>]
set <%= GetUpdateColumnList() %>
where <%= GetPrimaryKey() %>=#<%= GetPrimaryKey() %>#
<selectKey resultClass="int" type="post">
select @@RouCount as value
</selectKey>
</update>
<delete id="delete" parameterClass="string" resultClass="int">
delete [<%= TableName %>]
where <%= GetPrimaryKey() %>=#value#
<selectKey resultClass="int" type="post">
select @@RouCount as value
</selectKey>
</delete>
</statements>
</sqlMap>
<script runat="template">
/// <summary>
/// 输出的类名
/// </summary>
private string ClassName
{
get
{
return TableRename.Trim().Length == 0 ? "SourceTable.Name" : TableRename.Trim();
}
}
/// <summary>
/// 输入的数据表名
/// </summary>
private string TableName
{
get
{
return SourceTable.Name;
}
}
private string GetResultProperty()
{
string outString = string.Empty;
for (int i=0; i<SourceTable.Columns.Count; i++)
{
string colName = SourceTable.Columns[i].Name.ToString();
outString += string.Format("\t\t\t<result property=\"{0}\" column=\"{0}\" />", colName);
outString += (i == SourceTable.Columns.Count-1) ? "" : "\r\n";
}
return outString;
}
private string GetInsertColumnList(bool isValue)
{
string outString = string.Empty;
for (int i=0; i<SourceTable.Columns.Count; i++)
{
if( SourceTable.Columns[i].IsPrimaryKeyMember ) continue;
string colName = SourceTable.Columns[i].Name.ToString();
if( isValue )
{
outString += "#" + colName + "#";
}
else
{
outString += "[" + colName + "]";
}
outString += (i == SourceTable.Columns.Count-1) ? "" : ", ";
}
return outString;
}
private string GetUpdateColumnList()
{
string outString = string.Empty;
for (int i=0; i<SourceTable.Columns.Count; i++)
{
if( SourceTable.Columns[i].IsPrimaryKeyMember ) continue;
string colName = SourceTable.Columns[i].Name.ToString();
outString += string.Format("[{0}]=#{0}#", colName);
outString += (i == SourceTable.Columns.Count-1) ? "" : ",\r\n\t\t\t\t";
}
return outString;
}
private string GetPrimaryKey()
{
string outString = string.Empty;
for (int i=0; i<SourceTable.Columns.Count; i++)
{
if( SourceTable.Columns[i].IsPrimaryKeyMember )
{
outString = SourceTable.Columns[i].Name;
break;
}
}
return outString;
}
</script>
<%--
Code Generator for iBATIS.NET 1.2.1
功能描述: 生成数据表的映射文件
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" LinePragmas="True" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="DataSource"
Description="选择一个数据表" %>
<%@ Property Name="TableRename" Type="String" Category="DataSource"
Description="如果不需要表名到类名的重命名, 请保留空" %>
<%@ Property Name="Assemble" Type="String" Category="Main"
Description="程序集名称" %>
<%@ Property Name="Namespace" Type="String" Category="Main"
Description="类所在的命名空间" %>
<%@ Property Name="DeveloperName" Type="String" Category="Main"
Description="作者" %>
<?xml version="1.0" encoding="utf-8" ?>
<sqlMap
namespace="<%= ClassName %>"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="SqlMap.xsd">
<!--
Created: <%= DateTime.Now.ToShortDateString() %> Author: <%= DeveloperName %>
File: <%= ClassName %>.xml
Description: 数据表 <%= TableName %> 的映射文件, 使用 CodeSmith 自动生成.
-->
<alias>
<typeAlias alias="<%= ClassName %>" type="<%= Namespace %>.<%= ClassName %>, <%= Assemble %>" />
</alias>
<!-- 返回结果的类属性与数据库字段映射 -->
<resultMaps>
<resultMap id="SelectResult" class="<%= ClassName %>">
<%= GetResultProperty() %>
</resultMap>
</resultMaps>
<!-- 数据库操作定义块 -->
<statements>
<select id="selectAll" parameterClass="string" resultMap="SelectResult">
select *
from [<%= TableName %>]
</select>
<select id="select" parameterClass="string" resultMap="SelectResult">
select *
from [<%= TableName %>]
where <%= GetPrimaryKey() %>=#value#
</select>
<insert id="insert" parameterClass="<%= TableRename %>" resultClass="int">
insert into [<%= TableName %>]
(<%= GetInsertColumnList(false) %>)
values
(<%= GetInsertColumnList(true) %>)
<selectKey resultClass="int" type="post" property="<%= GetPrimaryKey() %>">
select @@IDENTITY as value
</selectKey>
</insert>
<update id="update" parameterClass="<%= TableRename %>" resultClass="int">
update [<%= TableName %>]
set <%= GetUpdateColumnList() %>
where <%= GetPrimaryKey() %>=#<%= GetPrimaryKey() %>#
<selectKey resultClass="int" type="post">
select @@RouCount as value
</selectKey>
</update>
<delete id="delete" parameterClass="string" resultClass="int">
delete [<%= TableName %>]
where <%= GetPrimaryKey() %>=#value#
<selectKey resultClass="int" type="post">
select @@RouCount as value
</selectKey>
</delete>
</statements>
</sqlMap>
<script runat="template">
/// <summary>
/// 输出的类名
/// </summary>
private string ClassName
{
get
{
return TableRename.Trim().Length == 0 ? "SourceTable.Name" : TableRename.Trim();
}
}
/// <summary>
/// 输入的数据表名
/// </summary>
private string TableName
{
get
{
return SourceTable.Name;
}
}
private string GetResultProperty()
{
string outString = string.Empty;
for (int i=0; i<SourceTable.Columns.Count; i++)
{
string colName = SourceTable.Columns[i].Name.ToString();
outString += string.Format("\t\t\t<result property=\"{0}\" column=\"{0}\" />", colName);
outString += (i == SourceTable.Columns.Count-1) ? "" : "\r\n";
}
return outString;
}
private string GetInsertColumnList(bool isValue)
{
string outString = string.Empty;
for (int i=0; i<SourceTable.Columns.Count; i++)
{
if( SourceTable.Columns[i].IsPrimaryKeyMember ) continue;
string colName = SourceTable.Columns[i].Name.ToString();
if( isValue )
{
outString += "#" + colName + "#";
}
else
{
outString += "[" + colName + "]";
}
outString += (i == SourceTable.Columns.Count-1) ? "" : ", ";
}
return outString;
}
private string GetUpdateColumnList()
{
string outString = string.Empty;
for (int i=0; i<SourceTable.Columns.Count; i++)
{
if( SourceTable.Columns[i].IsPrimaryKeyMember ) continue;
string colName = SourceTable.Columns[i].Name.ToString();
outString += string.Format("[{0}]=#{0}#", colName);
outString += (i == SourceTable.Columns.Count-1) ? "" : ",\r\n\t\t\t\t";
}
return outString;
}
private string GetPrimaryKey()
{
string outString = string.Empty;
for (int i=0; i<SourceTable.Columns.Count; i++)
{
if( SourceTable.Columns[i].IsPrimaryKeyMember )
{
outString = SourceTable.Columns[i].Name;
break;
}
}
return outString;
}
</script>
相关文章推荐
- 生成数据表实体类 for iBATIS.NET
- MyEclipse2014通过数据库表反向生成映射文件
- ibatis用ibator工具生成数据库表xml映射文件注意增加
- 由数据表生成hibernate映射文件和实体类
- ASP.NET 将数据生成PDF 文件
- myeclipse for spring里面自动生成视图映射文件时设置问题
- iBatis.Net系列(三) 映射文件基础
- 用Aspose.Words for .NET动态生成word文档中的数据表格
- asp.net下用Aspose.Words for .NET动态生成word文档中的数据表格的方法(转)
- asp.net下用Aspose.Words for .NET动态生成word文档中的数据表格的方法
- pojo+xDoclet生成ibatis映射文件
- [原]iBatis.Net(C#)系列二:SQL数据映射
- 牌Exel文件xls读写和生成控件Bytescout Spreadsheet SDK for.NET
- 根据数据中的表生成实体和mapper接口及映射文件
- ASP.NET中上传并读取Excel文件数据,附后生成EXCEL及杀掉EXCEL进程。
- ibatis.net出现不能加载映射文件错误
- ASP.NET 将 DataView 数据导出到服务器上生成Excel文件
- 如何在MyEclipse中使用MyBatis将MySQL数据表生成相应的实体类和映射文件
- iBatis.Net(C#)SQL数据映射
- asp.net 生成导出word表单 ,导出excel; dataTable生成xls文件,返回前台下载;asp.net启动excel错误 80070005;excel-xls columnName 不能改变; 读写excel的开源利器NPOI; 设置excel Cell的数据类型;