本来是为了验证前面的通讯框架,在不知不觉的2个月中,越写越大。java
既然写了就简单介绍下git
数据库查询,主要是客户端发送sql语句到服务端,服务端查询完成之后将数据返回程序员
客户端DBClientManager类中封装了通常的sql查询方法,按照c#的方式封装的,只须要调用不一样的方法则返回不一样的数据;github
通常的查询均返回DBResult对象,里面的Result字段对应返回数字,表结构DataTableJson对象;sql
固然也能够返回sqldatareader对象,其原理是分步返回而已数据库
构造的存储结构是按照列存储的方式,没有按照简单的object方式存储,一个int转成Object(或integer)存储会形成很大空间浪费,具体缘由看java的存储,因此优化了存储;json
客户端对外很简单,就是获取数据,也封装了行列结构,像通常的操做,若是是c#程序员就会感受很熟悉,再也不复述。c#
重点服务端,服务端除使用了表结构,行结构,列结构,还必须使用列映射;服务端使用封装的DB操做,启用链接池(本身封装的),有一些默认配置;框架
DBDefaultConfig.json配置链接池(建议不要修改);DBConfig.json配置数据库信息;链接池信息;post
DBMapType.json设置数据库列与java的类型;如今的设置基本够了,程序中有一部分写死了,通常映射,若是使用的数据库不够则添加映射;
Server.json 配置服务端IP,端口
服务端根据客户端的调用方法返回不一样具体对象与数据,已经封装
通讯,封装了通讯接口,能够本身实现进行替换,程序中使用了udt,为了适应程序,将udt源码进行了必定修改,方便使用。通讯是动态调用的。
这个通讯通过充分测试了的,应该直接使用。不清楚该通讯的请本身查询
日志使用了log4j
里面也添加了客户端向服务端传送文件,测试脚本文件传送。直接使用了udt中的文件发送
数据传递,fastjason(阿里巴巴),客户端与服务端交互使用了json结构传递。
大致上是这样,就不详细写了,没有什么意义。里面有不少。服务端还把数据库操做分割成写链接池与读链接池。
本来只是想写个测试插件,符合前面的通讯框架,没有想到越写越多,越大。感受在写的过程当中还能够有不少开发的;一些想法验证,就不想一一实现了,仍是收了,
数据库的二进制等没有验证。因此最后粗暴的添加了一个插件接口DBPluginManager,任意添加。只要有固定的通讯与文件传送,客户端与服务端就职意了。
使用数据库postgresql测试。5个字段,字符串类型,每一个字段5个字符。全表查询,15w行,使用时间6秒。客户端与服务端同步。虚拟机测试。
本程序全部配置使用的是json文件,json结构。
查询以及使用的第三方包都传到csdn,git.
选择postgresql数据库测试本来是想使用数据库的同步功能,一个数据库查询,一个数据库更新数据,同时备份了数据库。具体你们有兴趣就研究。
https://github.com/jinyuttt/DBRemote