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 ...
随机推荐
- Cocoapods无法使用/安装失败/失效解决方法
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Helvetica Neue"; color: #666666 } sp ...
- 由于目标计算机积极拒绝,无法连接。 192.168.1.106:8078 说明: 执行当前 Web 请求期间,出现未经处理的异常。
请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Net.Sockets.SocketException: 由于目标计算机积极拒绝,无法连接. 1 ...
- Android 内存泄漏的一些情况。
最近在维护代码,发现一个自定义View(这个View是在一个AsyncTask的工作线程doInBackground中新建的,在UI线程onPostExecute中添加进window中的)经常会泄漏内 ...
- 蓝牙协议中的SBC编码
一.从信息的传输说起  上图是一个典型的蓝牙耳机应用场景.手机上的音频信息经过编码以后通过蓝牙协议被蓝牙耳机接收,经过解码以后,蓝牙耳机成功获取手机上的音频信息,然后再转化为振动被人耳识别.这是一个 ...
- 菜单(Menu)的三中创建方式——Android开发之路2
菜单的三种创建方式 一.OptionsMenu---选项菜单 Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单.这种菜单叫做选项菜单(Options Menu ...
- Collection和Collections的区别?
Collection 是接口(Interface),是集合类的上层接口. Collections是类(Class),集合操作的工具类,服务于Collection框架.它是一个算法类,提供一系列静态方法 ...
- ListView之点击展开菜单
一.概述 ListView点击item显示菜单是要实现这样的效果: 需要实现的逻辑如下: 1)点击一个普通item,展开当前菜单,同时关闭其他菜单 2)点击一个已展开的菜单,隐藏当前菜单 3)将展开菜 ...
- ASP.NET MVC的客户端验证:jQuery的验证
之前我们一直讨论的Model验证仅限于服务端验证,即在Web服务器根据相应的规则对请求数据实施验证.如果我们能够在客户端(浏览器)对用户输入的数据先进行验证,这样会减少针对服务器请求的频率,从而缓解W ...
- 强大的flash头像上传插件(支持旋转、拖拽、剪裁、生成缩略图等)
今天介绍的这款flash上传头像功能非常强大,支持php,asp,jsp,asp.net 调用 头像剪裁,预览组件插件. 本组件需要安装Flash Player后才可使用,请从http://dl.pc ...
- Windows下SVN服务器的搭建步骤
1.下载svn服务端和客户端 服务端VISUALSVN SERVER:https://www.visualsvn.com/ 客户端TortoiseSVN:https://tortoisesvn.net ...