距离上次写Gc.Db框架已经有一段时间了,最近默默对框架代码已经做了不少优化和功能,且已经提交至nuget,大家如果想使用此框架,可以通过nuget搜索:Gc.Db进行下载和安装包。

本篇文章主要是介绍现目前为止,Gc.Db框架功能特性和演示代码,后期会完善此框架帮助文档,同时将也会将代码在git上进行开源,请大家多多指教。

Gc.Db是一套基于ADO.Net数据库快速开发框架和轻量级半ORM框架。特点如下:

1.支持数据库有MSSql、MySql、Oracle、Access。

2.对各数据库操作完全是基于接口设计,能够与各种IOC框架很好集成,便于程序解耦。

3.对单表提供了ORM功能,同时又封装ado.net常用SQL语句、参数化SQL语句、存储过程方法,为MSSql、MySql单表提供了分页功能,提供了开发效率。

4.支持单库事务操作。

Gc.Db配置相关简单,只需在主键、是否需要获取自动增长、是否获取自动增长值,目前对SqlSver和MySQL支持配置自动增长和获取自动增长值特性。Gc.Db配置和示例代码如下。

(1)  创建实体类,添加字段,配置主键,配置自动增长和获取自动增长值采用是的是缺省配置,默认是false.

using Gc.Db;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestGcDb
{
   public class UserInfo
    {
        [Column("UserId", true)]
       public int UserId { get; set; }

       public string UserName { get; set; }

       public int Age { get; set; }

       public DateTime CreateTime { get; set; }
    }
}

(2)创建一个对数据库操作示例类,添加了些对数据访问常用方法。

using Gc.Db;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Gc.Db;
using System.Data;

namespace TestGcDb
{
   public class UserInfoDao
    {
        //因为此演示代码是用的sqlserver,如果是mysql:MySqlDb,oracle:OracleSqlDb,同时各数据连接串
        private ISqlDb msDb = new MsSqlDb();

        //数据库连接,请根据各自数据库进行配置数据库连接串
        private string msDbConnStr = "Data Source=.;Initial Catalog=testdb;User ID=sa;Password=123456;";

        /// <summary>
        /// 添加数据
        /// </summary>
       public void Add()
        {
            UserInfo model = new UserInfo()
            {
                UserId = ,
                UserName = "abc",
                Age = ,
                CreateTime = DateTime.Now
            };
            msDb.Insert<UserInfo>(msDbConnStr, model);
        }

        /// <summary>
       /// 根据主键删除数据
        /// </summary>
       public void Delete()
        {
            ;
            msDb.Delete<UserInfo>(msDbConnStr, uid);
        }

        /// <summary>
       /// 修改数据
        /// </summary>
       public void Update()
        {
            UserInfo model = GetModel();
            if (model != null)
            {
                model.CreateTime = DateTime.Now;
                msDb.Update<UserInfo>(msDbConnStr, model);
            }
        }

        /// <summary>
       /// 获取单条数据
        /// </summary>
        /// <returns></returns>
       public UserInfo GetModel()
        {
            ;
            UserInfo model = msDb.Find<UserInfo>(msDbConnStr, uid);
            return model;
        }

       /// <summary>
       /// 查询object to in
       /// </summary>
       /// <param name="uid"></param>
       public int  GetObject()
       {
           ;
           string sqlStr="select count(*) from UserInfo";
           object data = msDb.ExecuteScalar(msDbConnStr, sqlStr);
           if (data != null)
           {
               num = Convert.ToInt32(data);
           }
           return num;
       }

        /// <summary>
        /// 数据查询
        /// </summary>
       public void GetList()
        {
            //查询列表
            List<UserInfo> list1 = msDb.Where<UserInfo>(msDbConnStr);
            List<UserInfo> list2 = msDb.Where<UserInfo>(msDbConnStr, "UserId>0");
            List<UserInfo> list3 = msDb.Where<UserInfo>(msDbConnStr, "", null, "CreateTime desc");
            List<UserInfo> list4 = msDb.Where<UserInfo>(msDbConnStr,  }, "CreateTime desc");

            //查询分页列表
            PageDataResult<List<UserInfo>> result = msDb.GetPageList<UserInfo>(msDbConnStr, , );
            List<UserInfo> list6 = result.Data;
            int toatl = result.TotalCount;
        }

       /// <summary>
       /// 事务用法
       /// </summary>
       /// <param name="uid"></param>
       public void TransOperator1()
       {
           msDb.BeginTransaction();
           ; i <= ; i++)
           {
               UserInfo model = new UserInfo()
               {
                   UserId = i,
                   UserName = "abc" + i.ToString(),
                   Age = ,
                   CreateTime = DateTime.Now
               };
               msDb.Insert<UserInfo>(msDbConnStr, model);
           }
           msDb.CloseTransaction();
       }

       /// <summary>
       /// 事务用法2
       /// </summary>
       /// <param name="uid"></param>
       public void TransOperator2()
       {
           msDb.BeginTransaction();
           msDb.Delete<UserInfo>(msDbConnStr, );
           msDb.ExecuteWithParam(msDbConnStr, "delete from UserInfo where Userid=2", null);
           msDb.ExecuteWithParam(msDbConnStr,  });
           msDb.CloseTransaction();
       }
    }
}

Demo点击下载

Gc.Db之循序渐进的更多相关文章

  1. 玩转Redis之Window安装使用(干货)

    距离上次定Gc.Db框架,好久没有更新博客了,今日没什么事,就打算就Redis写点东西. Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符 ...

  2. EcShop开发手册

    Ecshop文件结构 ecshop文件架构说明 ECShop 结构图及各文件相应功能介绍 ECShop upload 的目录 ┣ activity.php 活动列表 ┣ affiche.php 广告处 ...

  3. session放入缓存(redis)、DB

    为什么要把SESSION保存在缓存 就php来说,语言本身支持的session是以文件的方式保存到磁盘文件中,保存在指定的文件夹中,保存的路径可以在配置文件中设置或者在程序中使用函数session_s ...

  4. 循序渐进开发WinForm项目(4)--Winform界面模块的集成使用

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  5. GC学习笔记

    GC学习笔记 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里. 一.GC特性以及各种GC的选择 1.垃圾回收器的特性 2.对垃圾回收器的选择 2.1 连续 V ...

  6. 非常详细GC学习笔记

    转载:http://blog.csdn.net/fenglibing/article/details/6321453 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转 ...

  7. db file sequential read (数据文件顺序读取)

    转载:http://www.dbtan.com/2010/04/db-file-sequential-read.html db file sequential read (数据文件顺序读取): db ...

  8. Java GC 专家系列3:GC调优实践

    本篇是”GC专家系列“的第三篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种G ...

  9. 全表扫描引发的db file sequential read

    今天我要做一个SQL调优,监控该SQL, 利用ASH 监控 该SQL是在sid=4848 上面跑的 db file sequential read等待事件有3个参数:file#,first block ...

随机推荐

  1. ASP.NET MVC企业级实战目录

    电子书样稿 (关注最新进度,请加QQ群:161436236) ASP.NET MVC企业实战第1章 MVC开发前奏.pdf ASP.NET MVC企业实战第10章 站内搜索.pdf 已经好长一段时间没 ...

  2. 灵活的JavaScript(一)

    自己对JavaScript的原型,继承,闭包,多少也还是了解些,但是平时写的东西都挺简单的,也用不上,所以感觉提升不大.于是乎买了一本<JavaScript设计模式>来提高下自己,这本是百 ...

  3. angularjs中的filter(过滤器)——格式化日期的date

    date过滤器的功能是基于要求的格式格式化一个日期成为一个字符串. 格式化字符串的基本参数: 'yyyy': 用4位数字表示年(例如:AD 1 => 0001, AD 2010 => 20 ...

  4. 国外远控软件DarkComet-RAT

    下载地址:[点此下载] 使用步骤: 注册noip.org账号创建主机地址. 安装并配置DUC. 配置监听端口 配置NO-IP Updater 然后点击Update ,配置成功则会提示Success. ...

  5. 2015 Autodesk 开发者日( DevDays)和 助力开发周火热报名中

    Autodesk 软件(中国)有限公司 ADN 市场部真诚地邀请您参加我们一年一度的 "Autodesk 开发者日"(简称 DevDays),以及第一次随同开发者日举办的" ...

  6. PullToRefreshListView的使用

  7. 【代码笔记】iOS-正方形转换

    一,工程图. 二,代码. RootViewControlle.m //点击任何处,页面翻转 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEven ...

  8. 关于WCF报错之调用方未由服务器进行身份验证

    在我们部署好WCF服务以后,调用WCF服务会出现”调用方未由服务器进行身份验证”的错误.这个错误是怎么造成的呢? 通常我们在创建WCF后,用本机调试,一切正常,没有任何问题.其实用本机测试的时候,服务 ...

  9. AngularJS 系列 01 - HelloWorld和数据绑定

    目录导读: AngularJS 系列 学习笔记 目录篇 前言: 好记性不如烂键盘,随笔就是随手笔记,希望以后有用. 本篇目录: 1. Hello World 2. AngularJS中的数据绑定 3. ...

  10. 在Ubuntu中建立MySQL数据库

    最近在做一个关于云计算安全系统的项目,需要用到MySQL数据库,现在把建立数据库的步骤记录下来. 一.用命令在Ubuntu上安装MySQL # sudo apt-get update # sudo a ...