• 引言(NParsing框架功能简介、NParsing的由来)


    NParsing框架功能简介

    1、无需编写数据持久层代码。
    2、无需编写SQL语句。
    3、支持一个项目连接多数据库。
    4、支持(Access、MySQL、SQL Server、Oracle)多数据库平台。
    5、支持多字段排序。
    6、支持事务提交。
    7、一切以对象模型为主。

    控制器组件接口代码

    代码
      1 using System.Collections.Generic;
      2 
      3 namespace DotNet.Frameworks.NParsing.Interface
      4 {
      5     public interface IObHelper<M>
      6     {
      7         /// <summary>
      8         /// 检查是否存在
      9         /// </summary>
     10         /// <param name="iObParameter"></param>
     11         /// <returns></returns>
     12         bool Exists(IObParameter iObParameter);
     13         bool Exists(IObTransaction iObTransaction, IObParameter iObParameter);
     14 
     15         /// <summary>
     16         /// 添加一个对象到数据库
     17         /// </summary>
     18         /// <param name="model"></param>
     19         /// <returns></returns>
     20         bool Add(M model);
     21         bool Add(IObTransaction iObTransaction, M model);
     22 
     23         /// <summary>
     24         /// 从数据库删除一个对象
     25         /// </summary>
     26         /// <param name="iObParameter"></param>
     27         /// <returns></returns>
     28         bool Delete(IObParameter iObParameter);
     29         bool Delete(IObTransaction iObTransaction, IObParameter iObParameter);
     30 
     31         /// <summary>
     32         /// 更新一个数据库对象
     33         /// </summary>
     34         /// <param name="model"></param>
     35         /// <param name="iObParameter"></param>
     36         /// <returns></returns>
     37         bool Update(M model, IObParameter iObParameter);
     38         bool Update(IObTransaction iObTransaction, M model, IObParameter iObParameter);
     39 
     40         /// <summary>
     41         /// 获取一个数据库对象
     42         /// </summary>
     43         /// <param name="iObParameter"></param>
     44         /// <returns></returns>
     45         M GetModel(IObParameter iObParameter);
     46         M GetModel(IObTransaction iObTransaction, IObParameter iObParameter);
     47 
     48         ///// <summary>
     49         ///// 获取一个数据库对象的Json字符串
     50         ///// </summary>
     51         ///// <param name="iObParameter"></param>
     52         ///// <returns></returns>
     53         //string GetJsonModel(IObParameter iObParameter);
     54         //string GetJsonModel(IObTransaction iObTransaction, IObParameter iObParameter);
     55 
     56         /// <summary>
     57         /// 获取一个数据库对象集合
     58         /// </summary>
     59         /// <returns></returns>
     60         IList<M> GetList();
     61         IList<M> GetList(IObParameter iObParameter);
     62         IList<M> GetList(IObSort iObSort);
     63         IList<M> GetList(IObParameter iObParameter, IObSort iObSort);
     64         IList<M> GetList(IObTransaction iObTransaction);
     65         IList<M> GetList(IObTransaction iObTransaction, IObParameter iObParameter);
     66         IList<M> GetList(IObTransaction iObTransaction, IObSort iObSort);
     67         IList<M> GetList(IObTransaction iObTransaction, IObParameter iObParameter, IObSort iObSort);
     68 
     69         ///// <summary>
     70         ///// 获取一个数据库对象集合的Json字符串
     71         ///// </summary>
     72         ///// <returns></returns>
     73         //string GetJsonList();
     74         //string GetJsonList(IObParameter iObParameter);
     75         //string GetJsonList(string sortName, int sort);
     76         //string GetJsonList(string sortName, int sort, IObParameter iObParameter);
     77         //string GetJsonList(IObTransaction iObTransaction);
     78         //string GetJsonList(IObTransaction iObTransaction, IObParameter iObParameter);
     79         //string GetJsonList(IObTransaction iObTransaction, string sortName, int sort);
     80         //string GetJsonList(IObTransaction iObTransaction, string sortName, int sort, IObParameter iObParameter);
     81 
     82         /// <summary>
     83         /// 获取一个数据库对象分页集合
     84         /// </summary>
     85         /// <param name="pageSize"></param>
     86         /// <param name="pageIndex"></param>
     87         /// <param name="iObSort"></param>
     88         /// <param name="count"></param>
     89         /// <returns></returns>
     90         IList<M> GetList(int pageSize, int pageIndex, IObSort iObSort, out int count);
     91         IList<M> GetList(int pageSize, int pageIndex, IObParameter iObParameter, IObSort iObSort, out int count);
     92 
     93         ///// <summary>
     94         ///// 获取一个数据库对象分页集合的Json字符串
     95         ///// </summary>
     96         ///// <param name="pageSize"></param>
     97         ///// <param name="pageIndex"></param>
     98         ///// <param name="sortName"></param>
     99         ///// <param name="sort"></param>
    100         ///// <param name="count"></param>
    101         ///// <returns></returns>
    102         //string GetJsonList(int pageSize, int pageIndex, string sortName, int sort, out int count);
    103         //string GetJsonList(int pageSize, int pageIndex, string sortName, int sort, IObParameter iObParameter, out int count);
    104 
    105         /// <summary>
    106         /// 获取记录数
    107         /// </summary>
    108         /// <returns></returns>
    109         int GetCount();
    110         int GetCount(IObParameter iObParameter);
    111         int GetCount(IObTransaction iObTransaction);
    112         int GetCount(IObTransaction iObTransaction, IObParameter iObParameter);
    113 
    114         /// <summary>
    115         /// 获取某列最大值
    116         /// </summary>
    117         /// <param name="propertyName"></param>
    118         /// <returns></returns>
    119         object GetMaxScalar(string propertyName);
    120         object GetMaxScalar(string propertyName, IObParameter iObParameter);
    121         object GetMaxScalar(IObTransaction iObTransaction, string propertyName);
    122         object GetMaxScalar(IObTransaction iObTransaction, string propertyName, IObParameter iObParameter);
    123 
    124         /// <summary>
    125         /// 获取某列最小值
    126         /// </summary>
    127         /// <param name="propertyName"></param>
    128         /// <returns></returns>
    129         object GetMinScalar(string propertyName);
    130         object GetMinScalar(string propertyName, IObParameter iObParameter);
    131         object GetMinScalar(IObTransaction iObTransaction, string propertyName);
    132         object GetMinScalar(IObTransaction iObTransaction, string propertyName, IObParameter iObParameter);
    133     }
    134 }

    参数组件接口代码

    代码
     1 using System.Collections.Generic;
     2 using System.Data.Common;
     3 
     4 namespace DotNet.Frameworks.NParsing.Interface
     5 {
     6     public interface IObParameter
     7     {
     8         /// <summary>
     9         /// 值 null, DbTerm, DbNTerm
    10         /// </summary>
    11         object Value { getset; }
    12 
    13         /// <summary>
    14         /// 平级兄弟列表
    15         /// </summary>
    16         IList<IObParameter> Brothers { getset; }
    17 
    18         /// <summary>
    19         /// 0 无兄弟 1 AND 2 OR
    20         /// </summary>
    21         int BrotherType { getset; }
    22 
    23         /// <summary>
    24         /// SQL条件语句
    25         /// </summary>
    26         string ToString(ref IList<DbParameter> dbParameters);
    27 
    28         /// <summary>
    29         /// 平级AND条件
    30         /// </summary>
    31         /// <param name="iObParameter"></param>
    32         /// <returns></returns>
    33         IObParameter And(IObParameter iObParameter);
    34 
    35         /// <summary>
    36         /// 平级OR条件
    37         /// </summary>
    38         /// <param name="iObParameter"></param>
    39         /// <returns></returns>
    40         IObParameter Or(IObParameter iObParameter);
    41     }
    42 }

    排序组件接口代码

    代码
     1 using System.Collections.Generic;
     2 using DotNet.Frameworks.NParsing.Common;
     3 
     4 namespace DotNet.Frameworks.NParsing.Interface
     5 {
     6     public interface IObSort
     7     {
     8         /// <summary>
     9         /// 排序字段列表
    10         /// </summary>
    11         IList<DbSort> List { getset; }
    12 
    13         /// <summary>
    14         /// 添加一个排序参数
    15         /// </summary>
    16         /// <typeparam name="M"></typeparam>
    17         /// <param name="propertyName">属性名</param>
    18         /// <param name="isAsc"></param>
    19         /// <returns></returns>
    20         IObSort Add<M>(string propertyName, bool isAsc);
    21 
    22         /// <summary>
    23         /// 获取排序字符串
    24         /// </summary>
    25         /// <returns></returns>
    26         string ToString();
    27     }
    28 }

    事务组件接口代码

    代码
     1 using System;
     2 using System.Data.Common;
     3 
     4 namespace DotNet.Frameworks.NParsing.Interface
     5 {
     6     public interface IObTransaction : IDisposable
     7     {
     8         /// <summary>
     9         /// 提交事务
    10         /// </summary>
    11         void Commit();
    12 
    13         /// <summary>
    14         /// 回滚事务
    15         /// </summary>
    16         void Rollback();
    17 
    18         DbTransaction DbTransaction { get; }
    19 
    20         string ConnectionString { get; }
    21 
    22         string ProviderName { get;}
    23     }
    24 }

    NParsing的由来

        今天是我为NParsing框架写的第一篇文章,所以我来解释一下NParsing名字的由来。
    不怕大家笑话,我的英文学得不是很好,为本框架取名时差点把我难倒了。在偶然间,想到用框

    架的原理来取名。
        NParsing框架的核心技术是反射,生命源头是对象模型。而它就是将对象模型利用反射技术来转

    变成SQL语言(SELECT、INSERT、DELETE、UPDATE)操作数据库。所以我把它叫做对象解析(Parsing)框架,因为是DotNet平台上开发的所以安照惯例前面加了“N

    ”,拼起来就是“NParsing”。然后上BAIDU搜了一下,结果还没人用。所以我先用上了。哈哈

    至于框架的详细实现说明和框架使用说明,请继续关注我以后的文章。。。

    NParsing框架下载

    NParsing-1.2.8.16250.zip

    NParsing框架Demo下载

    NParsing.Demo.zip

    详细解说NParsing框架实现原理 —— 2)参数组件(ObParameter)

    详细解说NParsing框架实现原理 —— 1)控制器组件(ObHelper)

  • 相关阅读:
    解决springmvc报错,java.lang.IllegalArgumentException:No converter found for return value of type: class .......
    BidiMap MultiMap LazyMap
    双色球2013年统计,从网上爬虫出来的
    捡石子小游戏程序解析
    Linux常用命令--List of commands(附目录切换命令)
    格式化字符串
    有关循环
    使用python 3.x 对pythonchallenge-----8的解答过程
    使用python 3.x 对pythonchallenge-----7的解答过程
    使用python 3.x 对pythonchallenge-----6的解答过程
  • 原文地址:https://www.cnblogs.com/zhidian/p/1722338.html
Copyright © 2020-2023  润新知