JAVA数据库访问控制框架设计与使用

JAVA数据库访问控制框架设计与使用

一、引言

这个数据库访问控制框架工程名为dbmanager,之所以想写这个框架,最主要的一个原因是,目前在JAVA开发中通常使用的第三方开源框架,如:Spring、Hibernat等,虽然功能强大且拥有很好的性能,但在具体使用的时候个人感觉总是不那么方便,而且这些第三方开源框架在使用时有很多规则,程序员只有很清楚每一个规则且按这些规则来编程,这时这些框架才能达到它们设计的目标,否则性能很差不说,程序运行时还可能会出现想不到的结果。我个人正在使用Hibernate这一框架,对这一点深有感触,所以特别设计并实现这个框架。

这个框架目前是第一版,只支持MYSQL数据库,详细版本号为1.1.8,在未来两周内,我还将继续扩展这一框架,使其可以支持SQL Server、Oracle、Sybase、DB2数据库,,同时框架版本也将不断升级。

这一框架基于最原始的JDBC实现,当然像Spring、Hibernate这些第三方开源框架最终也是通过JDBC实现最终与数据库交互的功能。框架中实现有Pool功能,即数据库连接池。这一框架的数据库连接池内置实现对已有数据库连接的连接保持,不会像Hibernate那样,你要另外想办法保持数据库的连接,我在之前参与的一个项目中就遇到过。同时框架会自动对所有的数据库连接进行管理,在配置的数据库总的可用连接数范围内,内置实现各个数据库的可用连接数,如果程序需要的连接超过了数据库的最大连接数范围,程序员也不用担心,这个连接池会自动释放暂时不用的连接并创建新的连接,只是这样会降低框架的运行效率。

这一框架内置实现对分库应用的支持,不像Hibernate等框架,如果要使用并管理多个数据库,还需要另外写配置和代码才能实现。好了,废话不多说,先来看看这一框架的整体结构。

二、框架结构

本框架的结构分为五个部分,第一部分是数据连接,包括数据库连接、数据库连接池、数据库操作三个类。第二部分是数据实体,包括实体接口、抽象类、基本实现类等。第三部分是SQL语句构造器,包括SQL语句构造接口、抽象类、MYSQL数据库构造类、MYSQL数据库检测类等。第四部分是数据操作器,包括操作接口、抽象类、基础操作类等。第五个部分是一些常用的工具集,包括日期工具、字符串工具、XML读写工具、日志工具、加密/解密工具等。下面我们先看第一部分,数据连接。本节只对前四个部分进行说明,第五部分(常用工具集)在此省略。

2.1、数据连接

数据连接部分包括数据库连接类(SQLBaseConn)、数据库连接器(SQLBasePool)和数据库操作(SQLBase)三个类,如上图所示。通常来说程序员在使用此框架时根本不会接触到这三个类,所以这三个类的详细说明就不细说了。通过这三个类,本框架实现数据库连接池管理、数据库连接保持、分库应用的支持、数据库操作等最基本的功能。

2.2、数据实体

数据实体部分包括实体接口、抽象类、基本实现类等,具体结构见下图:

IBaseData接口是数据实体类的基本接口,定义一些基本操作方法,AbstractBaseData抽象类实现一些最基本的接口方法,如:获取实体字段、取指定字段的数值、判断字段是否存在等,而DatabaseInfo则是一个具体的实体类,在这个实体类中定义字段,并实现SetFieldValue方法,给实体的字段赋值。

需要特别说明的是,DatabaseInfo实体类的包名要遵循一个规则,即包名的最后一部分就是数据库名,如在本框架中,DatabaseInfo实体类的包名为:com.huang.jacky.basedata,这里的basedata就是数据库名,同时,和Hibernate相似,实体类名也就是数据表名,如DatabaseInfo实体类,就是在basedata数据库中的DatabaseInfo表。

DatabaseInfo表结构如下图:

字段说明:DBSN:数据库序列号,DBName:数据库名,CreateDates:创建日期,DBDirs:数据库所在位置,DBStyle:数据库类型,默认1为基础数据库,其它值由程序员自己定义,DBDriver:数据库驱动,DBURL:数据库连接串,请看如下示例:

找寻隐藏在山间的纯净和那“鸟鸣山更幽”的飞鸟。

JAVA数据库访问控制框架设计与使用

相关文章:

你感兴趣的文章:

标签云: