最新开源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>

时间: 2024-09-30 16:55:06

最新开源DBLayer,数据库操作也可以很简单的相关文章

Qt 学习:数据库操作

Qt 提供了 QtSql 模块来提供平台独立的基于 SQL 的数据库操作.这里我们所说的“平台独立”,既包括操作系统平台,有包括各个数据库平台.另外,我们强调了“基于 SQL”,因为 NoSQL 数据库至今没有一个通用查询方法,所以不可能提供一种通用的 NoSQL 数据库的操作.Qt 的数据库操作还可以很方便的与 model/view 架构进行整合.通常来说,我们对数据库的操作更多地在于对数据库表的操作,而这正是 model/view 架构的长项. Qt 使用QSqlDatabase表示一个数据

WebSpehre Messager Broker 数据库操作

一.          ODBC数据源 MB是通过ODBC来操作数据库的,因此首先要配置好操作系统本身的ODBC数据源.Windows中配置ODBC很容易,在此不赘述细节.需要注意的是,选择Oracle数据源驱动时,一定要选择下图所示的MB自带的Oracle驱动 我在创建ODBC时,一开始没有在本机安装Oracle,结果ODBC无法使用,报告"由于系统错误126,驱动程序无法加载",问了IBM的技术支持也没有答案,后来干脆在本机安装了一个Oracle(不必运行),问题就解决了,估计MB

其实Unix很简单

很多编程的朋友都在网上问我这样的几个问题,Unix怎么学?Unix怎么这么难?如何才能学好?并且让我给他们一些学好Unix的经验.在绝大多数时候,我发现问这些问题的朋友都有两个特点: 1)对Unix有畏难心理,对其没有信心: 2)喜欢用拿Windows来和Unix做比较.http://hovertree.com/menu/unix/ 这两种特点就像两个“心理暗示”,暗示着自己Unix很不好学,暗示着Unix很糟糕,不如Windows好.于是,自己也就被自己的这种长期的“暗示”所催眠了.因为,从一

如何在PPT中用文本框制作海报?这个方法很简单,不信来看

PPT里还能用文本框制作海报,你知道吗?很多朋友可能觉得很诧异,一般大家做海报都是用PS来制作,可是PS的操作有点复杂,还是一个细致活,急躁的朋友可能做着做着就没耐心了,不过这个也不妨碍制作海报,直接用PPT制作就好了:下面为大家分享在PPT中用文本框制作海报的方法,一起来看!下面是具体的操作方法:1:第一步:首先在PPT中插入一个文本框,在文本框中输入几个中文大写的[一]字.2:第二步:选中文本框,然后点击上方菜单栏中的[文本效果]选项,点击选择[转换]的效果.3:我们可以看到有很多的文本效果

IT观察】网络通信、图片显示、数据库操作……Android程序员如何利用开源框架

每个Android 程序员都不是Android应用开发之路上孤军奋战的一个人,GitHub上浩如烟海的开源框架或类库就是前人为我们发明的轮子,有的轮子能提高软件性能,而有的轮子似乎是以牺牲性能为代价换取编程速度.擅长利用轮子的程序员已经遥遥领先,不擅长利用轮子的程序员总是嫌前人发明的轮子不够圆,自己造个方轮子上路后才发现落后了. 作者:玖哥来源:51CTO|2017-10-19 16:06 移动端 收藏 分享 [51CTO.com原创稿件]每个Android 程序员都不是Android应用开发之

mysql数据库很简单操作

进入linux系统 root   >/usr/bin/mysql -u root mysql>show databases;                    #查看数据库 mysql>use  testtable;                        #testtable 为所要查看的库,应用数据库 mysql>show tables;                          #查看所有表 mysql>desc abc_table          

Android数据存储——开源LitePal方法操作数据库

一 配置litepal 1.在app/build.gradle中的dependencies闭包中添加依赖: compile 'org.litepal.android:core:1.4.1' 2.在app/src/mian目录里 new一个Directory,命名为assets目录,在目录中创建一个file,命名litepal.xml.并进行编辑: 1 <?xml version="1.0" encoding="utf-8" ?> 2 <litepa

开源微信数据库框架WCDB

微信移动端数据库组件WCDB系列(一)-iOS基础篇 2017-05-25 sanhuazhang 腾讯Bugly 本文来自:微信移动客户端开发团队公众号(WeMobileDev) 前言 WCDB(WeChat DataBase)是微信官方的移动端数据库组件,致力于提供一个高效.易用.完整的移动端存储方案. 它包含三个模块: WCDB-iOS/Mac WCDB-Android 数据库损坏修复工具WCDBRepair 目前正在筹备开源中. 背景 对于iOS开发者来说,数据库的技术选型一直是个令人头

常用的Mysql数据库操作语句大全

零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PASSWORD('fdddfd'); 3.权限管理 >SHOW GRANTS FOR name;    //查看name用户权限 >GRANT SELECT ON db_name.* TO name; //给name用户db_name数据库的所有权限 >REVOKE SELECT ON db_n