C#版本的MyBatis( C#解析XML文件并且获取SQL语句)
来源:互联网 发布:门户网站源码下载 编辑:程序博客网 时间:2024/06/01 14:43
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace Common
{
/// <summary>
/// 读取SQLConfig文件中的SQL
/// </summary>
public class SqlConfig
{
public SqlConfig()
{
}
#region 读取指定SQL
/// ========================================================================================
/// 类名:GetSql
/// <summary>
/// 读取指定SQL
/// </summary>
/// <param name="key">sql名称</param>
/// <returns>sql字符串</returns>
/// ========================================================================================
/// 更新记录
/// 序号 更新日期 担当者 更新内容
/// 0001 2014/04/24 zhou 初次作成
/// ========================================================================================
public static string GetSql(string key)
{
string sql = string.Empty;
try
{
string[] sqlLayers = key.Split('.');
XmlNode xmlNode = ReadMapping(sqlLayers[0]);
XmlNodeList list = xmlNode.SelectNodes("Sql");
foreach (XmlNode node in list)
{
if (node.Attributes["key"].Value.Equals(sqlLayers[1]))
{
return node.InnerText;
}
}
sql = xmlNode.SelectNodes("SqlMap[@key='" + sqlLayers[1] + "']")[0].InnerText;
}
catch (Exception ex)
{
}
return sql;
}
#endregion
#region 读取配置文件中的Mapping节点
/// ========================================================================================
/// 类名:ReadMapping
/// <summary>
/// 读取配置文件中的Mapping节点
/// </summary>
/// <param name="key">mapping节点名称</param>
/// <returns>Mapping节点下的sqlMap</returns>
/// ========================================================================================
/// 更新记录
/// 序号 更新日期 担当者 更新内容
/// 0001 2014/04/24 zhou 初次作成
/// ========================================================================================
private static XmlNode ReadMapping(string key)
{
XmlDocument Xdoc;
string fileName = AppDomain.CurrentDomain.BaseDirectory + (@"\SqlMapping.config");
Xdoc = new XmlDocument();
Xdoc.Load(fileName);
XmlNodeList list = Xdoc.SelectNodes("SqlMapping/SqlMaps");
foreach (XmlNode node in list)
{
if (node.Attributes["key"].Value.Equals(key))
{
return node;
}
}
return null;
}
#endregion
}
}
--------------------------------------------------------------------------
2、XML文件的格式如下所示,文件名为【SqlMapping.config】
<?xml version="1.0" encoding="utf-8" ?>
<SqlMapping>
<!--数据维护模块-->
<SqlMaps key="DataManage">
<Sql key="GetNavigation">
<![CDATA[
select * form Navigation
]]>
</Sql>
<Sql key="GetUserInfo">
<![CDATA[
select * form users
]]>
</Sql>
</SqlMaps>
</SqlMapping>
3、访问方式为如下所示:
class Program
{
static void Main(string[] args)
{
string sql = SqlConfig.GetSql("DataManage.GetNavigation");
Console.WriteLine(sql.Trim());
Console.ReadKey();
}
}
- C#版本的MyBatis( C#解析XML文件并且获取SQL语句)
- C#解析XML文件
- C#解析XML文件
- C#解析XML文件
- C#解析XML文件
- C#解析XML文件
- c# 解析Xml文件
- C#解析XML文件
- C#解析XML文件
- C#解析XML文件
- C# 解析Xml文件
- C# 解析简单的Xml文件
- C#解析 居委会的 XML 文件方法
- c# Adapter 获取sql语句
- MyBatis(三) xml文件解析流程 动态SQL解析
- c#获取文件版本信息
- C#的XML解析
- C# xpath解析XML文件
- (转)动态规划和贪心算法的区别
- Android设计模式之单例模式
- Unity3D 得到 主窗口句柄
- 利用Android Studio、MAT对Android进行内存泄漏检测
- Java实现多线程的方法-3种
- C#版本的MyBatis( C#解析XML文件并且获取SQL语句)
- 3D Touch 的实现和系统分享功能
- springmvc4 mybatis 整合 框架源码 SSM
- 《活着》----读书笔记
- 语法错误 : 缺少“;”(在“类型”的前面)”—— C语言标准
- 报错:”Gradle error : Write access is allowed from event dispatch thread only in android studio
- 一段Java程序的生命史
- 别总抱怨孩子成绩差,其真正根源在这儿
- freeline加速编译