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通过客户端访问服务器的数据库,是一个面向关系型数据库并提供一种方法查 ...
随机推荐
- tomcat一个IP绑定多个域名,不同域名访问不同的应用
修改conf文件夹下面的server.xml的Engine里面的内容即可原始内容如下: …… <Engine name="Catalina" defaultHost=&quo ...
- js使用占位符替换字符串
js使用占位符替换字符串是一个ES6中的模版字符串语法. 在``中使用 ${} var a = 5; var b = 10; console.log(`Fifteen is ${a + b} and ...
- JS中的prototype(转载)
本文转载自博客园. 作者:叶剑锋 出处:http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html 本文基于下面几个知识点: 1 原型法 ...
- PAT 1030 Travel Plan
#include <cstdio> #include <cstdlib> #include <vector> #include <queue> #inc ...
- 关于js 中函数的参数
var a = 100; function test(a){ a++; //a(形参)是局部变量 console.log(a); } test(a); console.log(a); //结果是 10 ...
- overflow:hidden的用法
overflow:hidden是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解. <%@ Page Language="C#& ...
- 【Linux】文本编辑器Vim常用操作入门
Linux常用文本编辑器:Vi & Eamcs Vim -- Vi的升级版本 Vim 一.3种工作模式 命令行模式 (Command Mode) 插入模式 (Insert Mode) -- 键 ...
- 多线程(二)~Thread类相关的API介绍
一.线程安全问题: 当我们使用多个线程操作统一方法内的局部变量的时候,每个局部变量在当前线程里都有自己的副本,这种情况是不会出现线程安全问题的.当我们两个线程同时操作全局变量的时候,有可能 ...
- 启动eclipse出现“Error opening registry key 'software\Javasoft\Java Runtime Environment'”
启动eclipse出现“Error opening registry key 'software\Javasoft\Java Runtime Environment'”,“java was start ...
- 基于ssh的多节点之间互信通信的实现
实现条件:node1:192.168.176.6 主机名称是node1.magedu.com: node2:192.168.176.6 主机名称是node1.magedu.com: 实现目的:在节点n ...