c# 常用数据库封装
我不为大家贴代码了,没有意思,有点多,我主要给大家介绍一下,源码会上传CSDN和GIT;我定义了一个ADO.NET操作接口,所有按照接口封装
1.sqlite数据库(需要SQLite.Interop.dll,采用.NetStandard2)
作为支持SQL的本地数据库和内存数据库使用。当然它是本地的,如果是大型数据库,请使用redis数据库。sqlite按照ADO.NET封装。基本用法和ADO.NET一致。
说说优化:
sqlite文件插入优化分为:1.扩展内存使用(增加cachesize,pagesize)2.使用事务 3.关闭同步 4采用wal模式 。
每一种都有各自产生的后果。值得注意的是wal模式会降低数据删除的性能。几种优化封装成了属性设置。
2.berkeleydb数据库(需要c++库和官方封装)
berkeleydb是比较优秀的K-V本地数据库,键值数据库,并且键和值的数据部分都是byte[],可以存储各类数据操作类已经封装了基本操作,这个不多说了,很简单
这里分了2层,一层封装原始的操作,key,value都传入byte[].再此之上一层泛型类,内部采用messagepack序列化,Key,value都是泛型。
3.postgresql 大型关系数据库
ADO.NET基本操作
4.通用的数据库操作
这里使用了我前一段时间的数据库连接池,根据配置,可以操作任何ADO.NET的数据库驱动,自己实现连接池。C#驱动的连接池真心不会用。
5.redis数据库操作客户端封装
这个不多说了,ServiceStack.Redis客户端
项目地址:(另外包含序列化,高效通信,自定义数据库连接池项目)
https://github.com/jinyuttt/DBQuerySharp.git
再次升级
1.新增redis客户端操作
2.UDP分报组包重发
3.数据库连接池重构
4.完善了整个框架流程
5.做成了一个完整的结构,但是没有完整测试,所有模块测试通过
6.新增LRU本地缓存,完成整个类型的存储
7.UDP通信分报组包,,采用协数据重发,协议形式
至此,整个包括了SQL数据库(连接池任意配置),本地KV数据库(berkeleydb),本地SQL数据库(Sqlite),内存SQL数据库(Sqlite),内存NOSQL数据库(redis),内存KV存储(LRU缓存)
c# 常用数据库封装的更多相关文章
- c#常用数据库封装再次升级
c#封装的几类数据库操作: 1.sqilte 2.berkeleydb 3.一般数据库 4.redis 包含其他项目: 1.序列化 2.通信 3.自定义数据库连接池 再次升级内容: 1.新增redis ...
- 常用数据库的驱动程序和Url地址
常用数据库的驱动程序及JDBC URL: Oracle数据库: 驱动程序包名:ojdbc6.jar 驱动类的名字:oracle.jdbc.driver.OracleDriver JDBC URL:jd ...
- 常用数据库 JDBC URL 格式
一 常用数据库 JDBC URL 格式 1 sqLite 驱动程序包名:sqlitejdbc-v056.jar 驱动程序类名: org.sqlite.JDBC JDBC URL: jdbc:sqli ...
- JDBC ----常用数据库的驱动程序及JDBC URL:
常用数据库的驱动程序及JDBC URL: Oracle数据库: 驱动程序包名:ojdbc14.jar 驱动类的名字:oracle.jdbc.driver.OracleDriver JDBC URL ...
- 常用数据库的驱动类/URL/默认端口
常用数据库的驱动类/URL/默认端口 1.Oracle: 格式: 驱动:oracle.jdbc.driver.OracleDriver URL:jdbc:oracle:thin ...
- c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包
[-] DBCP连接池配置 dbcp jar包 c3p0连接池配置 c3p0 jar包 jdbc-pool连接池配置 jdbc-pool jar包 常用数据库的driverClass和jdbcUrl ...
- mysql数据库封装和 分页查询
1 之前我们学到了php连接mysql数据库的增删改查,中间要多次调用数据库, 而且以后用到的表比较多,上传中如果需要改数据的话会非常麻烦,但是如果 我们把数据库封装,到时就可以很轻松的把改掉一些数据 ...
- AppDelegate减负之常用三方封装 - 友盟分享 / 三方登录篇
之前完成了 AppDelegate减负之常用三方封装 - 友盟推送篇: http://www.cnblogs.com/zhouxihi/p/7113511.html 今天接着来完成 - 友盟分享和三方 ...
- tomcat连接常用数据库的用法
一.用于数据库连接的术语: JDBC:(Java database connectivity)是基于java数据访问技术的一个API通过客户端访问服务器的数据库,是一个面向关系型数据库并提供一种方法查 ...
随机推荐
- 循环结构 while
while 循环语句可以根据某些条件重复执行一条t-sql 语句或一个语句块 语法: while (条件) begin 语句或语句块 end 程序调试 alt+f5 启动调试 f9 切换断点 f10 ...
- git pull冲突报错
修改代码后在git pull报错: error: Your local changes to the following files would be overwritten by merge: xx ...
- MySQL8.0加载文件内容报错: ERROR 1148: The used command is not allowed with this MySQL version
mysql数据库将文件内容加载到表中报错: mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINAT ...
- 彻底消除wine中文乱码,QQ,kugoo等等....
原文链接:http://forum.ubuntu.org.cn/viewtopic.php?t=290155 lendylongli wine下中文的配置方案步骤:1. 初始设置运行 winecfg, ...
- C#学习笔记10
1.匿名类型:匿名类型是C#3.0新增的特性,是强类型(由编译器后台在生成为CIL时,自动声明的代码定义类型),声明与初始化属性后其属性是尽读属性.只有在属性的名称.顺序.类型一致时,多个声明匿名变量 ...
- PAT 1076 Forwards on Weibo
#include <cstdio> #include <cstdlib> #include <vector> #include <queue> #inc ...
- oracle相关常识
1.数据类型 VARCHAR2() NUMBER() DATE CLOB BLOB 2.复制表:create table tableName as select * from emp3.新增列:ALT ...
- Stage4--Python面向对象
说在前面: Stage1-Stage4简单介绍一下Python语法,Stage5开始用python实现一些实际应用,语法的东西到处可以查看到,学习一门程序语言的最终目的是应用,而不是学习语法,语法本事 ...
- PLSQL Developer中几个功能
1,登录后默认自动选中My Objects 默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需 ...
- Linux漏洞分析入门笔记-CVE_2018_6323_整型溢出
操作系统 Ubuntu 16.04 /32 位 调试器 IDA pro 7.0 漏洞软件 binutils-2.29.1 0x00: 漏洞描述 1.什么是整数溢出: 在计算机中,整数分 ...