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