最新开源DBLayer的详细介绍

DBLayer,我最近开源的数据库轻量级orm框架,目前支持sqlserver、mysql、oracle, 特别做了分页的封装。

这个框架从七八年前开始逐渐升级而来,也经历了不少项目,希望可以将大家从sql字符串中解放出来。

开源地址


访问代码案例

var id = TheService.InsertEntity<SysLog, long>(
        () => new SysLog()
        {
            LogId = -1,
            LogContentJson = 测试,
            LogCreater = 测试,
            LogCreateTime = DateTime.Now,
            LogType = 1});
分页操作
        /// <summary>/// 分页查询/// </summary>/// <param name=condition>查询条件</param>/// <returns></returns>public IEnumerable<SysUser> Seach(SysUserCondition.Search condition)
        {var page = new Pager<SysUserCondition.Search>()
            {
                Condition = condition,
                Table = sys_user,
                Key = user_id,
                Order = string.Empty,
                Field = *,
                WhereAction = (Condition, Where, Paramters) =>{if (!string.IsNullOrEmpty(Condition.UserName))
                    {
                        Where.Append(AND user_name LIKE @user_name );
                        Paramters.Add(base.CreateParameter(@user_name, string.Concat(%, Condition.UserName, %)));
                    }if (!string.IsNullOrEmpty(Condition.UserEmail))
                    {
                        Where.Append(AND user_email LIKE @user_email );
                        Paramters.Add(base.CreateParameter(@user_email, string.Concat(%, Condition.UserEmail, %)));
                    }if (!string.IsNullOrEmpty(Condition.UserMobile))
                    {
                        Where.Append(AND user_mobile LIKE @user_mobile );
                        Paramters.Add(base.CreateParameter(@user_mobile, string.Concat(%, Condition.UserMobile, %)));
                    }
                }
            };var result = base.GetResultByPager<SysUser, SysUserCondition.Search>(page);return result;
        }

推荐和spring 配合使用,具体配置代码请进入源码查看。

同时在spring 配置多个数据库连接,支持数据库连接字符串密码加密。只需要在 passwordKey加入密钥

  <object id=sql_wxius_string_server type=DBLayer.Core.ConnectionString, DBLayer.Core singleton=true>
    <property name=Properties>
      <name-values>
        <add key=userid value=sa />
        <add key=password value=*** />
        <add key=passwordKey value= />
        <add key=database value=wxius />
        <add key=datasource value=. />
      </name-values>
    </property>
    <property name=ConnectionToken value=Password=${password};Persist Security Info=True;User ID=${userid};Initial Catalog=${database};Data Source=${datasource};pooling=true;min pool size=5;max pool size=10 />
  </object>

数据库唯一标识除了可以数据自动编码,还支持在代码端自动 生成 GUID 和 时间点。下面代码是uuid,时间点并按照顺序生成的自动编号

  <object id=uuidGenerator type=DBLayer.Persistence.UUIDGenerator, DBLayer.Persistence singleton=true >
    <!--workerId:区域(机房):3 bits-->
    <constructor-arg name=workerId value=1/>
    <!--regionId:机器编号:10 bits-->
    <constructor-arg name=regionId value=1/>
    <!--twepoch:基准时间:Thu, 04 Nov 2010 01:42:54 GMT-->
    <!--(long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds-->
    <constructor-arg name=twepoch value=1288834974657/>
  </object>

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...