zoukankan      html  css  js  c++  java
  • 最新开源DBLayer,原来数据库操作可以这么简单

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

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

    开源地址

    https://github.com/wutao0315/DBLayer

    访问代码案例

    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>
  • 相关阅读:
    oracle与DB2
    oracle ORA-01427: 单行子查询返回多个行
    mysql开发总结
    mysql show profile基本详解
    mysql批量插入数据
    mysql索引详解
    mysql性能调优
    MySQL优化
    mysql主从调优
    mysql主从复制
  • 原文地址:https://www.cnblogs.com/jweiswu/p/dblayer.html
Copyright © 2011-2022 走看看