Gc.Db之循序渐进
距离上次写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();
}
}
}
Gc.Db之循序渐进的更多相关文章
- 玩转Redis之Window安装使用(干货)
距离上次定Gc.Db框架,好久没有更新博客了,今日没什么事,就打算就Redis写点东西. Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符 ...
- EcShop开发手册
Ecshop文件结构 ecshop文件架构说明 ECShop 结构图及各文件相应功能介绍 ECShop upload 的目录 ┣ activity.php 活动列表 ┣ affiche.php 广告处 ...
- session放入缓存(redis)、DB
为什么要把SESSION保存在缓存 就php来说,语言本身支持的session是以文件的方式保存到磁盘文件中,保存在指定的文件夹中,保存的路径可以在配置文件中设置或者在程序中使用函数session_s ...
- 循序渐进开发WinForm项目(4)--Winform界面模块的集成使用
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- GC学习笔记
GC学习笔记 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里. 一.GC特性以及各种GC的选择 1.垃圾回收器的特性 2.对垃圾回收器的选择 2.1 连续 V ...
- 非常详细GC学习笔记
转载:http://blog.csdn.net/fenglibing/article/details/6321453 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转 ...
- db file sequential read (数据文件顺序读取)
转载:http://www.dbtan.com/2010/04/db-file-sequential-read.html db file sequential read (数据文件顺序读取): db ...
- Java GC 专家系列3:GC调优实践
本篇是”GC专家系列“的第三篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种G ...
- 全表扫描引发的db file sequential read
今天我要做一个SQL调优,监控该SQL, 利用ASH 监控 该SQL是在sid=4848 上面跑的 db file sequential read等待事件有3个参数:file#,first block ...
随机推荐
- C++_系列自学课程_第_12_课_结构体
#include <iostream> #include <string> using namespace std; struct CDAccount { double bal ...
- 设置JDK环境变量(linux版)
设置环境变量一.修改/etc/profile文件当本机仅仅作为开发使用时推荐使用这种方法,因为此种配置时所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题.用文本编辑器打开/et ...
- javascript的理解及经典案例
js的简介: JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言. 你可以利用JavaScript轻易的做出亲切的欢迎讯息.漂亮的数字钟.有广告效 ...
- AOS – 另外一个独特的页面滚动动画库(CSS3)
AOS 是一个用于在页面滚动的时候呈现元素动画的工具库,你可能会觉得它和 WOWJS 一样,的确他们效果是类似的.但是AOS是 CSS3 动画驱动的库,当你滚动页面的时候能让元素动起来,当页面滚回顶部 ...
- 5.1 JS中Object类型
1.Object类型是引用类型中的一种. 2.创建Object实例(对象)的方式: 方式1:使用new操作符,后面跟上Object构造函数.如: var obj = new Object();//创建 ...
- 如何在SharePoint 当中使用纯JSOM上传任意二进制文件(小于2MB)
在微软的官方网站上有关于如何在SharePoint当中使用JS创建一个简单的文本文件的例子,经过我的思考我觉得结合Html5特性的浏览器,是完全可以通过JS来读取到文件的内容的(这一部分的内容请大家自 ...
- Android GZIP压缩IO流,优化APP数据传输(一)
我是小搬运工,今天讲解流的压缩传输 在我们安卓开发中,通常伴随着大量的数据传输,在此,楼主给出一个简单的压缩流的数据进行操作. public void GZIPCpf(String path) { / ...
- SQL中select与set的区别-转载
下表列出 SET 与 SELECT 的区别 SELECT SET 同时对多个变量同时赋值时 支持 不支持 表达式返回多个值时 将返回的最后一个值赋给变量 出错 表达式未返回值时 变量保持原值 变量 ...
- Windows API 函数列表 附帮助手册
所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...
- 初学JavaScript
什么是 JavaScript? JavaScript 被设计用来向 HTML 页面添加交互行为. JavaScript 是一种脚本语言(脚本语言是一种轻量级的编程语言). JavaScript 由数行 ...