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通过客户端访问服务器的数据库,是一个面向关系型数据库并提供一种方法查 ...
随机推荐
- FFmpegInterop 库在 Windows 10 应用中的编译使用
FFmpegInterop 简介 FFmpegInterop 是微软推出的封装 FFmpeg 的一个开源库,旨在方便在 Windows 10.Windows 8.1 以及 Windows Phone ...
- C# ADO.NET面向对象想法
我认为的面向对象就是把各种问题拆分开来 逐一解决, 我想的是先是数据库,到底有什么, 然后新建一个类,类里面先是private的私有的,但是可以有无数个可以连接private的pubilc的属性 可 ...
- Spring课程 Spring入门篇 4-8 Spring bean装配之基于java的容器注解说明--基于泛型的自动装配
1 解析 1.1 什么是泛型? 1.2 泛型有什么作用? 1.3 泛型装配样式? 2 代码演练 2.1 泛型应用 1 解析 1.1 什么是泛型? Java泛型设计原则:只要在编译时期没有出现警告,那么 ...
- Homebrew 的使用
安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/ins ...
- Flask入门flask-script 蓝本 钩子函数(三)
1 flask-script扩展库 概念: 是一个flask终端运行的解析器 ,因为项目完成以后,代码改动会有风险,所以借助终端完成不同启动项的配置 安装 pip3 install flask-scr ...
- 在一个服务中实现 多个契约 和终结点 z
一个服务作为一系列终结点被定义的.每个终结点都有一个地址,绑定和契约.契约就是暴露终结点能力的.地址就是这些应用或服务从网络的哪个地址可找到,契约是关于如何访问他们的. 在终结点和契约间有一对多的关系 ...
- create-react-app 打包后文件路径问题
在package.json 加入 "homepage": "需要的路径",
- 开源监控zabbix的搭建
yum-nginx-php-mysql 1.依赖安装 1.依赖 yum -y install pcre* openssl* 2.php rpm -Uvh https://mirror.webtatic ...
- March 21 2017 Week 12 Tuesday
Sometimes ever, sometimes never. 相聚有时,后会无期. Maybe love is something we can't touch but we can feel w ...
- android-ndk-r7b编译环境Cygwin工具搭建及配置(转)
开发android ndk 的时候需要一个编译工具编译c程序,ndk需要linux下编译,所以win环境下提供Cygwin模拟linux编译C android-ndk 较低版本的这个工具的配置网上很多 ...