【开源】自己用的数据访问组件及一些小东西,发

系统 1464 0

前言

加入博客园很久很久了,中间写过一些东西,都没有发出来,很多草稿都删除了,不知道不觉距离上次写的那篇MVC的文章已经一年多了..

很早都想把自己的东西分享给大家,但是一是自己太懒,二是总觉得自己写得不够好,现在也算是鞭笞一下自己来写写博客,方便他人也提升一下自己。

注意:本人的东西都没有经过详细的压力测试及其它测试,仅仅只是自己写来自己一直在使用,如果对你有一点点帮助我的目的也就达到了,如果是大神则很抱歉浪费了您的时间。

那么进入正题吧!

一,项目开源地址

1,数据访问Never.Net: https://coding.net/u/jiyang/p/Never.Net/git

2,DoNet学习项目Learn.net: https://coding.net/u/jiyang/p/Learn.net/git

3,通用采集器NCollector: https://coding.net/u/jiyang/p/NCollector/git

暂时只整理了3个项目,都不完善甚至有些粗糙,我也会有时间就去升级一下,只希望对大家有那么一点点帮助

二,Never.NET介绍及使用

Never.net是我花了最多时间去维护的第一个数据库访问项目,从最早的用字典生成插入及修改语句的helper到后面解析lamda表达式(到现在都还很弱),现在还使用在一些小项目中,也算有些历史了,它是一个超自由的数据访问库,有多自由呢?先看几个例子吧!

从最基本的添加,修改,删除,查询说起:

1,添加数据

      
         1
      
      
        //
      
      
        默认加载配置文件的第一个连接串配置
      
      
         2
      
      
        using
      
       (DbContext db = 
      
        new
      
      
         DbContext()) 

      
      
         3
      
      
                    {

      
      
         4
      
                       context.Debug = 
      
        true
      
      ;
      
        //
      
      
        打开调试
      
      
         5
      
                       context.LogOutputAction = msg =>  
      
        //
      
      
        设置日志输出方式为控制台输出
      
      
         6
      
      
                        {

      
      
         7
      
      
                            Console.WriteLine(msg.ToString());

      
      
         8
      
      
                        };

      
      
         9
      
      
        //
      
      
        语句插入
      
      
        10
      
                       db.FromSql(
      
        "
      
      
        insert into demo(id,item)values(@id,@item)
      
      
        "
      
      
        )

      
      
        11
      
                         .AddParameter(
      
        "
      
      
        @id
      
      
        "
      
      , 
      
        1
      
      
        )

      
      
        12
      
                         .AddParameter(
      
        "
      
      
        @item
      
      
        "
      
      , 
      
        "
      
      
        adfadsf
      
      
        "
      
      
        )

      
      
        13
      
      
                          .ExecuteNonQuery();

      
      
        14
      
      
        //
      
      
        设置插入
      
      
        15
      
                       db.Insert(
      
        "
      
      
        demo
      
      
        "
      
      
        )

      
      
        16
      
                         .Set(
      
        "
      
      
        id
      
      
        "
      
      , 
      
        1
      
      ) 
      
        //
      
      
        自动使用参数化
      
      
        17
      
                         .Set(
      
        "
      
      
        item
      
      
        "
      
      , 
      
        "
      
      
        adsfa
      
      
        "
      
      
        )

      
      
        18
      
                         .Save();
      
        //
      
      
        SaveReturnIdentity返回标识列

      
      
        19
      
      
        //
      
      
        orm插入
      
      
        20
      
                       db.Insert(
      
        new
      
       Demo() { Id = 
      
        1
      
      , Item = 
      
        "
      
      
        adsfasd
      
      
        "
      
      
         }).Save();

      
      
        21
      
      
        //
      
      
        混合使用
      
      
        22
      
                       db.Insert<Demo>
      
        ()

      
      
        23
      
                         .Set(t => t.Id, 
      
        1
      
      
        )

      
      
        24
      
                         .Set(
      
        "
      
      
        item
      
      
        "
      
      , 
      
        "
      
      
        item1
      
      
        "
      
      
        )

      
      
        25
      
      
                          .Save();

      
      
        26
      
      
        //
      
      
        事务
      
      
        27
      
      
                        db.BeginTransaction();

      
      
        28
      
      
        var
      
        i = 
      
        0
      
      
        ;

      
      
        29
      
                       i += db.Insert(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        1
      
      
        "
      
      
         }).Save();

      
      
        30
      
                       i += db.Insert(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        2
      
      
        "
      
      
         }).Save();

      
      
        31
      
                       i += db.Insert(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        3
      
      
        "
      
      
         }).Save();

      
      
        32
      
                       i += db.Insert(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        4
      
      
        "
      
      
         }).Save();

      
      
        33
      
                       i += db.Insert(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        5
      
      
        "
      
      
         }).Save();

      
      
        34
      
      
        var
      
       b =
      
         db.Commit();

      
      
        35
      
                   }
    

2,修改数据

      
         1
      
      
        //
      
      
        语句
      
      
         2
      
                       db.FromSql(
      
        "
      
      
        update item set item=@item
      
      
        "
      
      
        )

      
      
         3
      
                         .AddParameter(
      
        "
      
      
        @item
      
      
        "
      
      , 
      
        "
      
      
        updated
      
      
        "
      
      
        )

      
      
         4
      
      
                          .ExecuteNonQuery();

      
      
         5
      
      
        //
      
      
        设置
      
      
         6
      
                       db.Update(
      
        "
      
      
        demo
      
      
        "
      
      
        )

      
      
         7
      
                         .Set(
      
        "
      
      
        id
      
      
        "
      
      , 
      
        1
      
      ) 
      
        //
      
      
        自动使用参数化
      
      
         8
      
                         .Set(
      
        "
      
      
        item
      
      
        "
      
      , 
      
        "
      
      
        adsfa
      
      
        "
      
      
        )

      
      
         9
      
                         .Save();
      
        //
      
      
        SaveReturnIdentity返回标识列

      
      
        10
      
      
        //
      
      
        orm
      
      
        11
      
                       db.Update(
      
        new
      
       Demo() { Id = 
      
        1
      
      , Item = 
      
        "
      
      
        adsfasd
      
      
        "
      
      
         }).Save();

      
      
        12
      
      
        //
      
      
        混合使用
      
      
        13
      
                       db.Update<Demo>
      
        ()

      
      
        14
      
                         .Set(t => t.Id, 
      
        1
      
      
        )

      
      
        15
      
                         .Set(
      
        "
      
      
        item
      
      
        "
      
      , 
      
        "
      
      
        item1
      
      
        "
      
      
        )

      
      
        16
      
      
                          .Save();

      
      
        17
      
      
        //
      
      
        事务
      
      
        18
      
      
                        db.BeginTransaction();

      
      
        19
      
      
        var
      
        i = 
      
        0
      
      
        ;

      
      
        20
      
                       i += db.Update(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        1
      
      
        "
      
      
         }).Save();

      
      
        21
      
                       i += db.Update(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        2
      
      
        "
      
      
         }).Save();

      
      
        22
      
                       i += db.Update(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        3
      
      
        "
      
      
         }).Save();

      
      
        23
      
                       i += db.Update(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        4
      
      
        "
      
      
         }).Save();

      
      
        24
      
                       i += db.Update(
      
        new
      
       Demo() { Item = 
      
        "
      
      
        5
      
      
        "
      
      
         }).Save();

      
      
        25
      
      
        var
      
       b = db.Commit();
    

3,删除

      
         1
      
       db.FromSql(
      
        "
      
      
        delete from demo where id=@id
      
      
        "
      
      
        )

      
      
         2
      
                         .AddParameter(
      
        "
      
      
        @id
      
      
        "
      
      , 
      
        1
      
      
        )

      
      
         3
      
      
                          .ExecuteNonQuery();

      
      
         4
      
                       db.Delete(
      
        "
      
      
        demo
      
      
        "
      
      ).Where(
      
        "
      
      
        id={0}
      
      
        "
      
      , 
      
        1
      
      
        )

      
      
         5
      
                                        .Where(
      
        "
      
      
        item=@item
      
      
        "
      
      
        )

      
      
         6
      
                                        .AddParameter(
      
        "
      
      
        @item
      
      
        "
      
      , 
      
        "
      
      
        fadf
      
      
        "
      
      
        )

      
      
         7
      
      
                                         .Save();

      
      
         8
      
                       db.Delete<Demo>(t => t.Id == 
      
        1
      
      
        )

      
      
         9
      
                         .Where(
      
        "
      
      
        id=2
      
      
        "
      
      
        )

      
      
        10
      
                         .Save();
    

4,查询

      
         1
      
                       db.From(
      
        "
      
      
        demo
      
      
        "
      
      
        )

      
      
         2
      
                         .Where(
      
        "
      
      
        id={0}
      
      
        "
      
      ,
      
        1
      
      
        )

      
      
         3
      
                         .Take(
      
        10
      
      
        )

      
      
         4
      
                         .Columns(
      
        "
      
      
        id,item
      
      
        "
      
      
        )

      
      
         5
      
                         .OrderBy(
      
        "
      
      
        id desc
      
      
        "
      
      
        )

      
      
         6
      
                         .ToList<Demo>();
      
        //
      
      
        ToDataReader(),ToDataSet(),其它
      
      
         7
      
                       db.From<Demo>
      
        ()

      
      
         8
      
                         .Where(t=>t.Id==
      
        1
      
      
        )

      
      
         9
      
                         .Where(
      
        "
      
      
        id=1
      
      
        "
      
      
        )

      
      
        10
      
                         .OrderByDesc(t=>
      
        t.Id)

      
      
        11
      
                         .Columns(t=>
      
        new
      
      
        {t.Id,t.Item})

      
      
        12
      
      
                          .ToList();

      
      
        13
      
      
        //
      
      
        分页
      
      
        14
      
      
        var
      
       selecter = db.From<Demo>().Where(t=>t.Id==
      
        1
      
      
        );

      
      
        15
      
      
        var
      
       recordCout =
      
         selecter.Count();

      
      
        16
      
      
        var
      
       list = selecter.Page(
      
        1
      
      ,
      
        10
      
      ).ToList();    
    

基本的操作在上面的例子中有写出,但是更多的功能还期待使用者去发现,Never.Data并未使用兼容所有数据库,但是可以很方便的写一个不同的语句生成类继承DbDriver来实现不同的数据库操作功能,Never.Net基本介绍到此结束.

其它项目简要介绍:

Learn.Net:这个东西现在还是个坑,只是为了把学习的东西放到一个项目中,以便需要的时间查询和查看demo,同时也可以把一些做过的功能集合到一起,以后换工作或者在其它地方不用携带你的U盘

NCollector:是一个基于jumony实现的网站采集器项目,项目本身带有一个测试的access数据库及采集工具和采集服务(实现自动采集功能),框架已搭好并实现了一些视频采集器,扩展超方便只需要实现采集基类实现一个列表页的采集功能就可以了,工具服务只需要配置一下数据库连接就可以直接在项目中使用

另外,近期在整个一个mvc4+never.net+j-ui的项目,不过最近老婆要生宝宝,可能会晚一些,到时也会分享给大家。

最后:以上所有项目,有兴趣一起开发的可以给我发邮件:crazytester@qq.com

 

【开源】自己用的数据访问组件及一些小东西,发扬博客园分享精神


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论