一种基于jdbc的数据访问层构建方法及装置的制作方法

文档序号:6439037阅读:146来源:国知局
专利名称:一种基于jdbc的数据访问层构建方法及装置的制作方法
技术领域
本申请涉及数据库技术,特别是涉及一种基于JDBC的数据访问层构建方法及装置。
背景技术
JDBC是一种用于执行SQL语句的Java API可以为多种关系数据库提供统一访问, 它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。其中,JDBC为Java Data Base Connectivity,java数据库连接;SQL 为 Mructured Query Language 结构化查询语言;API 为 ApplicationProgramming Interface,应用程序编程接□。在使用JDBC进行Java系统的数据访问层开发,对数据库进行访问和操作,并将数据库操作结果(数据集、数据操作结果)以一定方式提供给系统服务对象的开发过程中,虽然JDBC为开发人员提供了一组标准的API,但是在实际操作中,不同的操作人员根据JDBC 对数据访问层进行开发时,构建数据访问层的数据库接口的编程方式各不相同。由于编程方式的不同会导致数据访问层的程序结构模式也各不相同,即使在同一程序模式下,不同的操作人员在对数据访问层进行开发、维护、管理时,其编程方式也不尽相同,此时必将造成程序代码量偏多并且代码冗余,并且容易造成程序结构混乱等问题。同时在构建数据访问层的数据库接口的编程过程中,会为系统配置相关的控件和配置文件等,配置过程非常的繁琐并且需手工执行,因此在系统配置出现错误时,需要大量的系统调试和代码检查的工作。当系统所用的关系数据库发生变化时,关系数据库在文件配置、SQL语法、数据库驱动、数据库系统环境需求等方面的差异,必将引起数据访问层框架进行不可预期的变动和修改。由于程序的框架不同,导致程序结构混乱,因此在系统的可扩展性和可移植性变得很差,使得在维护和管理方面会带来极大的不便。

发明内容
本申请提供了一种基于JDBC的数据访问框架构建方法及装置,以解决数据访问层开发过程中程序架构和编程方式各异,系统配置复杂的问题。为解决上述问题,本申请公开了一种基于JDBC的数据访问层构建方法,包括通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过相关的程序配置建构数据访问层。优选的,所述通过架构开源组件并封装功能控件,生成基于JDBC的数据访问层框架生成组件,包括 将开源组件集成为架构组件,所述架构组件包括JNDI架构组件,和/或,Spring架构组件;将自定义的功能构件封装为功能控件,所述功能控件包括数据访问管理控件和系统功能控制/调度控件;架构组件和功能控件共同生成基于JDBC的数据访问层框架生成组件。优选的,所述根据所述架构组件选择程序架构,包括选择所述架构组件中的JNDI架构组件作为程序架构,或,选择所述架构组件中的 Spring架构组件作为程序架构。优选的,所述在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板,包括在所选的程序架构下,选择数据访问管理控件自动生成所选程序架构的系统配置文件和源程序模板,其中,所述数据访问管理控件包括简单的Java对象基类、数据访问对象类、系统功能辅助控件和对象/关系映射控件;选择系统功能控制/调度控件组合数据访问管理控件中的各个控件,快速生成数据访问层框架及构件,并提供自动和手动系统部署功能。优选的,所述系统功能辅助控件创建XML文件集控件和生成源代码/系统配置文件集控件;所述数据访问管理控件自动生成所选程序架构的系统配置文件和源程序模板,包括所述生成源代码/系统配置文件集控件生成数据访问层框架中的源代码模板和系统配置文件,其中所述源程序代码模板中包含简单的Java对象类、数据访问接口和数据访问接口实现类。优选的,所述对象/关系映射控件提取基于JDBC的相关数据库表结构信息,创建源程序代码模板中的简单的Java对象和简单的Java对象逻辑功能,并实现简单的Java对象继承基类的功能。优选的,所述简单的Java对象继承基类的功能,所述功能为判断数据访问层框架中是否存在简单的Java对象,和是否存在与所述简单的Java对象相等的对象。优选的,所述数据访问对象类提供数据库访问功能,其中,在JNDI架构中,所述数据访问对象类为获取数据库访问必要信息提供功能支撑, 抽取数据访问的共性,形成数据库操作的公共方法;或,在Spring架构中,所述数据访问对象类被以依赖注入的方式管理,以属性文件的形式配置和读入数据库配置信息,并以统一的方式加载。优选的,所述XML文件集控件提取基于JDBC的相关数据库表结构信息,自动生成数据访问层框架中存储SQL语句的XML文件。优选的,应用所述XML文件集控件完成XML文件中信息和简单的Java对象之间的映射。相应的,本申请还公开了一种基于JDBC的数据访问层构建装置,包括
生成组件模块,用于通过集成开源组件并封装自定义的功能构件,生成基于JDBC 的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;选择架构及配置模块,用于根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;建构数据访问层模块,用于由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过相关的程序配置建构数据访问层。优选的,所述生成组件模块,包括集成开源组件子模块,用于将开源组件集成为架构组件,所述架构组件包括JNDI 架构组件,和/或,Spring架构组件;封装功能构件模块,用于将自定义的功能构件封装为功能控件,所述功能控件包括数据访问管理控件和系统功能控制/调度控件;生成组件子模块,用于架构组件和功能控件共同生成基于JDBC的数据访问层框架生成组件。优选的,所述选择架构及配置模块,包括选择架构子模块,用于选择所述架构组件中的JNDI架构组件作为程序架构,或, 选择所述架构组件中的Spring架构组件作为程序架构。优选的,所述选择架构及配置模块,还包括生成配置及模板子模块,用于在所选的程序架构下,选择数据访问管理控件自动生成所选程序架构的系统配置文件和源程序模板,其中,所述数据访问管理控件包括简单的Java对象基类、数据访问对象类、系统功能辅助控件和对象/关系映射控件;组合控件子模块,用于选择系统功能控制/调度控件组合数据访问管理控件中的各个控件,快速生成数据访问层框架及构件,并提供自动和手动系统部署功能。与现有技术相比,本申请包括以下优点首先,本申请通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,将开发数据访问层过程中具有共性特点的组件和构建封装、集成到一起,其中,所述生成组件中包括架构组件和功能控件。因此在开发数据访问层时可以选择根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板。由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过配置相关的程序建构数据访问层。在统一的源程序模板中,会按照一定的规则配置相关的程序,并且在程序调用配置文件时,也可以有一定的规范。因此在开发和后期的维护中都可以按照相关的规范配置,因此本申请所述的方法对数据层进行开发时程序结构模式统一,开发、维护和管理方便。本申请能够快速生成架构模式可定制的、 系统配置可简化的、程序结构标准化的数据访问层框架及构件的生成组件,从而降低系统开发复杂度和时间,并且实现数据访问层开发的统一和标准。其次,现有技术将数据库SQL语句编写于Java文件中,当数据库表信息发生变化或业务需求发生变化时,需要在Java文件中修改相应SQL语句,重新编译系统,降低了系统的可维护性。本申请将SQL语句与Java文件分离,通过XML文件集控件生成包含标准SQL 语句的XML文件集,便于对语句的修改,提高了系统的可维护性。再次,本申请可以选择Spring架构和JNDI架构进行数据访问层的开发,在对开发过程进行标准化的过程中提供更多的选择,适用于各种开发的需求,开发方法灵活、可扩展。


图1是本申请实施例所述一种基于JDBC的数据访问层构建方法流程图;图2是本申请实施例所述一种基于JDBC的数据访问层构建方法构建生成组件流程图;图3是本申请实施例所述一种基于JDBC的数据访问层构建方法生成数据访问层框架流程图;图4是本申请实施例所述一种基于JDBC的数据访问层构建方法示意图;图5是本申请实施例所述一种基于JDBC的数据访问层构建方法组件功能实现原理图;图6是本申请优选实施例所述一种基于JDBC的数据访问层构建方法生成组件的架构方法流程图;图7是本申请优选实施例所述一种基于JDBC的数据访问层构建方法生成组件生成数据访问层框架流程图;图8是本申请实施例所述一种基于JDBC的数据访问层构建装置结构图;图9是本申请实施例所述一种基于JDBC的数据访问层构建装置中生成配置及模板子模块结构图。
具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。现有技术在对数据访问层进行开发时,虽然JDBC为开发人员提供了一组标准的 API,但是在实际操作中,不同的操作人员构建数据访问层的数据库接口的编程方式各不相同。导致数据访问层的程序结构模式也各不相同,即使在同一程序模式下,不同的操作人员在对数据访问层进行维护、管理时,也会使用不同的编程方式,此时必将造成程序代码量偏多并且代码冗余,并且容易造成程序结构混乱等问题。本申请针对当前大多数系统在数据访问层开发过程中存在的一些共性问题,发明一种能够快速生成架构模式可定制的、系统配置可简化的、程序结构标准化的数据访问层框架及构件的生成组件,从而降低系统开发复杂度和时间,并且实现数据访问层开发的统一和标准。本申请通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件;根据生成组件中的架构组件选择程序架构,在所选的程序架构下,选择生成组件中相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板构建数据访问层框架基本内容;再配置相应的程序,建构功能完整的数据访问层。在统一的源程序模板中,会按照一定的规则配置相关的程序,并且在程序调用配置文件时,也可以有一定的规范。因此在开发和后期的维护中都可以按照相关的规范配置,因此本申请所述的方法对数据层进行开发时程序结构统一,开发、维护和管理方便。
参照图1,给出了本申请实施例所述一种基于JDBC的数据访问层构建方法流程图。步骤11,通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;在对基于JDBC的数据访问层进行开发时,存在一些组件、构件具有共性的特点, 因此可以通过集成开源组件,封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件。例如,在开发数据访问层时程序架构可以是Spring框架,在构建Spring框架时会有一些程序包和配置文件等,这是具有共性特点的,因此可以将Spring框架的程序包和配置文件等组件进行集成,此处是具体实施中的举例不应理解为是对本申请的限制。步骤12,根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;首先根据架构组件选择开发数据访问层的程序架构,在所选的程序架构下,选择相应的功能控件,所述功能控件配置上相应的数据等信息,产生适用于该程序架构的系统配置文件和源程序模板。因此就可以构成数据访问层框架。例如,上述选择的是Spring框架,可以产生适用于Spring框架的配置文件,以及源程序模板。步骤13,由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过相关的程序配置建构数据访问层。上述步骤中确定了程序架构,和在该程序架构下的系统配置文件及源程序模板, 可以手动或自动的给源程序模板配置相关的程序,还可以根据代码对系统配置文件进行相关的配置等,在所述数据访问层框架下进一步建构数据访问层。例如,在统一的源程序模板中,会按照一定的规则配置相关的代码,并且在程序调用配置文件时,也可以有一定的规范。因此在开发和后期的维护中都可以按照相关的规范配置。综上所述,本申请通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,将开发数据访问层过程中具有共性特点的组件和构建封装、集成到一起,其中,所述生成组件中包括架构组件和功能控件。因此在开发数据访问层时可以选择根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板。由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过配置相关的程序建构数据访问层。在统一的源程序模板中, 会按照一定的规则配置相关的代码,并且在程序调用配置文件时,也可以有一定的规范。因此在开发和后期的维护中都可以按照相关的规范配置,因此本申请所述的方法对数据层进行开发时程序结构统一,开发、维护和管理方便。本申请能够快速生成架构模式可定制的、 系统配置可简化的、程序结构标准化的数据访问层框架及构件的生成组件,从而降低系统开发复杂度和时间,并且实现数据访问层开发的统一和标准参照图2,给出了本申请实施例所述一种基于JDBC的数据访问层构建方法构建生成组件流程图。具体的,上述步骤11,通过架构开源组件并封装功能控件,生成基于JDBC的数据访问层框架生成组件,包括步骤111,将开源组件集成为架构组件,所述架构组件包括JNDI架构组件,和/或, Spring架构组件;例如,将JNDI架构的程序包和应用程序编程结果口封装类这些开源组件进行集成,生成JNDI架构;将Spring架构程序包和组件配置文件等开源组件进行集成,生成 Spring架构。当然,还可以集成其他架构的开源组件,本申请对此不做限定。因此将开源组件集成为架构组件,所述架构组件可以包括JNDI架构组件和 Spring架构组件;也可以仅为JNDI架构组件,或仅为Spring架构组件,本申请对此不做限定。步骤112,将自定义的功能构件封装为功能控件,所述功能控件包括数据访问管理控件和系统功能控制/调度控件;在对数据访问层进行开发时,各种功能后会有相应的构件执行完成,因此可以自定义相应的功能构件,将这些自定义的功能构件进行封装后作为功能控件,所述功能控件可以包括数据访问管理控件和系统功能控制/调度控件。步骤113,由所述架构组件和功能控件共同生成基于JDBC的数据访问层框架生成组件。其中,JNDI (Java Naming and Directory Interface, Java 命名禾口目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象JNDI提供了一种统一的方式,可以用在网络的查找和访问服务。 通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库连接建立所必须的信息。JNDI架构提供了一组标准的独立于命名系统的API,这些API构建在与命名系统有关的驱动之上,因此JNDI独立于目录服务的具体实现,只要有目录的服务提供接口(或驱动),就可以使用目录。Spring架构(Spring框架)Spring是一个轻量级的控制反转(IoC,Inversion of Control)的容器框架,具有方便解耦、简化开发,声明式的事务管理,在应用服务器之间可移植等特点。Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了开发人员。参照图3,给出了本申请实施例所述一种基于JDBC的数据访问层构建方法生成数据访问层框架流程图。具体的,上述步骤12中,所述根据所述架构组件选择程序架构,包括步骤121,选择所述架构组件中的JNDI架构组件作为程序架构,或,选择所述架构组件中的Spring架构组件作为程序架构。上述架构组件可以包括JNDI架构组件,和/或,Spring架构组件,因此可以选择 JNDI架构组件作为程序架构,或,选择Spring架构组件作为程序架构。具体的,上述步骤12中,所述在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板,包括步骤122,在所选的程序架构下,选择数据访问管理控件生成所选程序架构的系统配置文件和源程序模板,其中,所述数据访问管理控件包括简单的Java对象基类、数据访问对象类、系统功能辅助控件和对象/关系映射控件;上述功能控件可以包括数据访问管理控件和系统功能控制/调度控件作为功能控件,其中,所述数据访问管理控件包括简单的Java对象基类、数据访问对象类、系统功能辅助控件和对象/关系映射控件。在所选的程序架构下,可以选择数据访问管理控件,数据访问管理控件中各个不同功能的控件配置相应的数据信息,可以生成所选程序架构的系统配置文件和源程序模板。步骤123,选择系统功能控制/调度控件组合数据访问管理控件中的各个控件,快速生成数据访问层框架及构件,并提供自动和手动系统部署功能。具体实施中,可以通过基于AWT(Abstract Windowing ^Toolkit,抽象窗口工具包) 创建用户交互界面,在系统功能控制及调度控件的控制和调度下,有机组合各控件,快速生成数据访问层框架及构件,并提供自动和手动系统部署功能。上述数据访问管理控件中包含很多不同功能的控件,系统功能控制/调度控件可以组合上述各种不同功能的控件,快速生成数据访问层框架及相关的各种构件,并提供自动和手动系统部署功能。其中,系统部署功能是根据生成组件部署的方式,对数据访问层的源代码模板和相关的配置文件等内容,手动或自动的加载到实际工程规定的目录中。下面,给出本申请与功能控件有关的英文缩写对应英文全拼、中文名称和简要介绍,其它未在本处列出的英文缩写,详见说明书中其他部分。POJO (Plain Old Java Objects)简单的 Java 对象,实际就是普通 JavaBean,是为了避免和EJB混淆所创造的简称。VO (value object)值对象,通常用于业务层之间的数据传递,和PO—样也是仅仅包含数据而已。DAO (Data Access Object)数据访问接口,是一种应用程序编程接口(API)。XML (Extensible Markup Language)可扩展标记语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。本申请通过数据访问层框架生成组件快速生成数据访问层框架,再配置相应的代码等生成数据访问层。参照图4,给出了本申请实施例所述一种基于JDBC的数据访问层构建方法示意图。具体的,通过数据库访问相关的架构组件、数据访问管理控件及系统控制/调度控件生成数据访问层框架及构件。其中,数据访问管理控件包括P0J0(简单的Java对象) 基类、DA0(数据访问对象)、系统功能辅助控件、对象/关系映射控件和生成源代码/系统配置文件集控件;构架组件集成Spring架构和封装JNDI组件。 数据访问层框架包括自动生成的目标构件包含标识SQL语句的XML配置文件集、 系统模块信息配置文件集、数据库访问层的源程序模板代码、JNDI架构程序包及应用程序编程接口封装类和Spring架构程序包及组件配置文件。 其中,所述系统模块信息配置文件集包括数据库连接配置文件、JNDI目录服务
10命名配置文件、系统模块的Spring依赖注入功能相关配置文件等。所述源程序模板代码包含P0J0类、DAO接口、DAO接口实现类和相关的功能支持类。参照图5,给出了本申请实施例所述一种基于JDBC的数据访问层构建方法组件功能实现原理图。其中图中数字分别代表1、POJO继承VO基类的功能;2、DaoImpl实现Dao接口的方法;3、DaoImpl调用POJO ;4、DaoImpl调用SqlManager类,实现sql语句的管理;5、 DaoImpl 类继承 JNDI 架构(JNDI Frameffork)的 AbstractDao 抽象类;6、AbstractDao 抽象类调用CustomRowProcessor中产生POJO对象和POJO对象集合的方法;7、AbstractDao 抽象类调用hitializeCormectionPool类,实现对数据库连接池的初始化功能;8、 InitializeConnectionPool 类实现 InitialContext 接口 ;9、DaoImpl 类调用适用于 Spring 架构(Spring Frameffork)白勺 BaseJdbcDao 类;10、BaseJdbcDao 类被 Spring 架构以依赖注入的方式管理;11、JdbcTemplate 继承 JdbcDaoSupport ; 12、InitialContext 类 Context实现接口。图中+代表共有方法,可被其他对象调用;-代表独有方法,不能被其他对象调用。 例如,在 DaoImpl 调用 SqlManager 类,可以调用其中的 createXML、IoadSqlFile 和 getSql 方法,实现sql语句的管理。其中,JdbcTemplate为JDBC实例JdbcDaoSupport为JDBC数据访问接口功能支持;Spring Core为Spring架构核心;Bean Container为定义、创建和解析JavaBean对象的容器;supporting utilities为Spring Core提供的反向控制和依赖注入等基础支撑功能;lookup为JNDI提供的寻找目录访问的方法;applicationContext. xml为Spring架构的配置文件。所述生成组件集成了 Spring的核心容器和Spring数据访问接口功能支持,封装了 JNDI的访问命名服务功能;以接口的程序模式产生系统数据访问层功能的源代码; DaoImpl类是DAO接口的实现。下面具体论述应用生成组件中的功能控件生成数据访问层框架的过程。优选的,所述系统功能辅助控件创建XML文件集控件和生成源代码/系统配置文件集控件;进一步,所述数据访问管理控件自动生成所选程序架构的系统配置文件和源程序模板,包括所述生成源代码/系统配置文件集控件生成数据访问层框架中的源代码模板和系统配置文件,其中所述源程序代码模板中包含简单的Java对象类、数据访问接口和数据访问接口实现类。所述生成源代码/系统配置文件集控件,可以应用Java编程的方式生成数据访问层接口模式的源代码模板和相关的系统配置文件。应用Daolmpl类实现Dao接口的方法包括getObject (获得Pojo对象)、getOb jectList (获得Pojo对象集合)、add (添加对象方法)、edit (编辑对象方法)、delete (删除对象方法)等,在Spring架构下,DaoImpl调用 BaseJdbcDao类,以依赖注入的方式管理。其中,所述源程序代码模板中包含简单的Java对象类、数据访问接口和数据访问接口实现类和相关的功能支持类。优选的,所述对象/关系映射控件提取基于JDBC的相关数据库表结构信息,创建源程序代码模板中的简单的Java对象和简单的Java对象逻辑功能,并实现简单的Java对象继承值对象基类的功能。其中,对象/关系映射控件定义了 CustomRowProcessor类,主要定义了三个类方法,createBean、toBean 禾口 toBeanList。createBean 负责创建 POJO, toBean 负责数据库关系映射为P0J0对象,toBeanList负责数据库关系映射为P0J0对象集合。优选的,所述实现简单的Java对象继承基类的功能,还包括所述简单的Java对象继承值对象基类的功能,所述功能为判断数据访问层框架中是否存在简单的Java对象,和是否存在与所述简单的Java对象相等的对象。其中,basic attributes为基本属性。VO基类是一个可序列化,即简单的Java对象实接口,能够以一连串的字节描述的过程。其方法可被子类继承的JavaBean,实现一种具有共性的功能,equal 即判断P0J0对象是否和另一个对象相等,或hascode判断P0J0对象是否具有本对象的实例,所述功能可被P0J0继承。其中,序列化时将对象的状态信息转换为可以存储或传输的形式的过程。在数据访问层的开发过程中,通过创建一个可序列化,其方法可被P0J0继承的 JavaBean式的VO基类,实现判断P0J0对象之间是相等或判断是否具有本对象实例的功能。 其中,实例(instance)和对象(object)的区别为对象就是类的实例,所有的对象都是实例,但并不是所有的实例都是对象。 优选的,所述数据访问对象类提供数据库访问功能,其中,在JNDI架构中,所述数据访问对象类为获取数据库访问必要信息提供功能支撑, 抽取数据访问的共性,形成数据库操作的公共方法;或,在Spring架构中,所述数据访问对象类被以依赖注入的方式管理,以稳健的形式配置和读入数据库配置信息,并以统一的方式加载。DaoImpl类的实现方式有两种实现方式,即继承适应于JNDI架构的AbstractDao 抽象类和调用适用于Spring架构的BaseJdbcDao类。引入JNDI程序包,AbstractDao抽象类调用封装JNDI Javax. naming包的访问命名服务 Context 接口和接口实现类 hitialContext 的 hitializeConnectionPool 类,为获取数据库访问必要信息提供功能支撑,并抽取数据访问的共性,形成数据库操作的公共方法,比如getBean (获取Java对象),getBeanList (获取Java对象集合)、update (添加、 修改和删除数据操作)等方法予以子类继承。引入Spring架构程序包,BaseJdbcDao类包含较丰富的数据库访问及操作方法, 被Spring架构以依赖注入的方式管理,在Spring架构中,数据源信息以属性文件的形式进行配置并读入,以统一的方式加载。现有技术将数据库SQL语句编写于Java文件中,当数据库表信息发生变化或业务需求发生变化时,需要在Java文件中修改相应SQL语句,重新编译系统,降低了系统的可维护性。
为解决上述问题,本申请将SQL语句与Java文件分离,并以一种确定的方式实现 SQL语句信息在计算机内存中的统一预加载,具体过程如下。优选的,所述XML文件集控件提取基于JDBC的相关数据库表结构信息,自动生成数据访问层框架中存储SQL语句的XML文件。优选的,应用所述XML文件集控件完成XML文件中信息和简单的Java对象之间的映射。包含标识SQL语句的XML文件集控件主类SqlManager负责创建系统模块标准SQL 语句XML文件(由createXML方法实现),在系统启动时,在计算机内存中预加载所有系统模块SQL语句的XML文件中的SQL信息(由IoadSqlFiIe方法实现),并提供读取SQL信息功能(由getSql方法实现)。针对SQL信息表现方式及SQL语句预加载的技术问题,通过如下的技术手段加以解决1.通过XML的Xml Schema文档模式技术对系统业务模块的SQL语句进行逻辑结构上的定义,不同的业务模块SQL信息可以定义到不同的XML文件中;2.自定义包含标识SQL语句的XML文件集控件,控件利用JDOM (基于Java的XML 文档对象模型)技术,通过基于JDBC的数据库编程方式提取到的相关数据库表结构信息, 自动生成包含符合mlschema逻辑结构的、具有基本增、删、改、查功能的SQL语句信息的 XML文件;3.在包含标识SQL语句的XML文件集控件中,利用Digester (通过文件和对象映射的方式,处理XML文件的组件)技术,负责XML文件信息到Java对象实例的转化,通过 Java的静态化技术保证java对象在Web系统生命周期内的全局性。4.在Web系统启动时,通过Java的监听技术调用包含标识SQL语句的XML文件集控件,集中处理SQL语句的XML文件到Java对象的实例化并全局静态化SQL信息,在计算机内存中加载SQL信息,并提供读取SQL信息功能。上述各控件并不是独立运行的,是互相之间共同作用产生数据访问层框架。综上所述,本申请将SQL语句与Java文件分离,通过XML文件集控件生成包含标准SQL语句的XML文件,便于对语句的修改,提高了系统的可维护性。其次,本申请可以选择Spring架构和JNDI架构进行数据访问层的开发,在对开发过程进行标准化的过程中提供更多的选择,适用于各种开发的需求,开发方法灵活、可扩展。参照图6,给出了本申请优选实施例所述一种基于JDBC的数据访问层构建方法生成组件的架构方法流程图。具体实施时,可以首先创建组件架构体系结构,生成POJO基类,所述POJO基类继承VO基类的功能。其次创建对象/关系映射控件,可以封装JNDI架构,生成DAO基类实现 AbstractDao,并且可以集成Spring架构,生成DAO基类BaseJdbcDao。再创建系统功能辅助控件,可以创建XML文件集控件,并且可以创建生成源代码/系统配置文件集控件。实际中创建控件的先后顺序是平行的,上述给出了创建所述各控件的一种顺序,此处不应理解为是对本申请的限定。上述控件创建完毕后,再创建系统功能控制/调度控件,最后可以创建生成组件UI (User hterface,用户交互界面)。
参照图7,给出了本申请优选实施例所述一种基于JDBC的数据访问层构建方法生成组件生成数据访问层框架流程图。首先启动生成组件UI,选择架构组件,可以选择Spring架构,也可以选择JNDI架构。然后配置数据连接信息及选择生成模块对应的表,其中可批量选择表信息,也就是配置连接数据库的相关信息和数据。再确定代码包结构,生成源代码模板以相关的配置文件,最后整合源代码及系统配置文件、标准SQL语句的XML文件。参照图8,给出了本申请实施例所述一种基于JDBC的数据访问层构建装置结构图。相应的,本申请还提供了一种基于JDBC的数据访问框架构建装置,包括生成组件模块11、选择架构及配置模块12和建构数据访问层模块13,其中生成组件模块11,用于通过集成开源组件并封装自定义的功能构件,生成基于 JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;选择架构及配置模块12,用于根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;建构数据访问层模块13,用于由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过配置相关的程序建构数据访问层。所述生成组件模块11,包括集成开源组件子模块111,用于将开源组件集成为架构组件,所述架构组件包括 JNDI架构组件,和/或,Spring架构组件;封装功能构件模块112,用于将自定义的功能构件封装为功能控件,所述功能控件包括数据访问管理控件和系统功能控制/调度控件;生成组件子模块113,用于由所述架构组件和功能控件共同生成基于JDBC的数据访问层框架生成组件。所述选择架构及配置模块12,包括选择架构子模块121,用于选择所述架构组件中的JNDI架构组件作为程序架构, 或,选择所述架构组件中的Spring架构组件作为程序架构。所述选择架构及配置模块12,还包括生成配置及模板子模块122,用于在所选的程序架构下,选择数据访问管理控件自动生成所选程序架构的系统配置文件和源程序模板,其中,所述数据访问管理控件包括简单的Java对象基类、数据访问对象类、系统功能辅助控件和对象/关系映射控件;组合控件子模块123,用于选择系统功能控制/调度控件组合数据访问管理控件中的各个控件,快速生成数据访问层框架及构件,并提供自动和手动系统部署功能。参照图9,给出了本申请实施例所述一种基于JDBC的数据访问层构建装置中生成配置及模板子模块结构图。所述系统功能辅助控件创建XML文件集控件和生成源代码/系统配置文件集控件;生成配置及模板子模块122,包括生成配置及模板单元1221,用于生成源代码/系统配置文件集控件生成数据访问层框架中的源代码模板和系统配置文件,其中所述源程序代码模板中包含简单的Java对象类、数据访问接口和数据访问接口实现类。创建对象模块1222,用于所述对象/关系映射控件提取基于JDBC的相关数据库表结构信息,创建源程序代码模板中的简单的Java对象和简单的Java对象逻辑功能,并实现简单的Java对象继承基类的功能。继承功能单元1223,用于所述简单的Java对象继承基类的功能,所述功能为判断数据访问层框架中是否存在简单的Java对象,和是否存在与所述简单的Java对象相等的对象。数据库访问单元12M,用于所述数据访问对象类提供数据库访问功能,其中,在JNDI架构中,所述数据访问对象类为获取数据库访问必要信息提供功能支撑, 抽取数据访问的共性,形成数据库操作的公共方法;或,在Spring架构中,所述数据访问对象类被以依赖注入的方式管理,以属性文件的形式配置和读入数据库配置信息,并以统一的方式加载。生成XML文件单元1225,用于所述XML文件集控件提取基于JDBC的相关数据库表结构信息,自动生成数据访问层框架中存储SQL语句的XML文件。所述生成XML文件单元1225,还用于应用所述XML文件集控件完成XML文件中信息和简单的Java对象之间的映射。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。以上对本申请所提供的一种基于JDBC的数据访问层构建方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种基于JDBC的数据访问层构建方法,其特征在于,包括通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过相关的程序配置建构数据访问层。
2.根据权利要求1所述的方法,其特征在于,所述通过架构开源组件并封装功能控件, 生成基于JDBC的数据访问层框架生成组件,包括将开源组件集成为架构组件,所述架构组件包括JNDI架构组件,和/或,Spring架构组件;将自定义的功能构件封装为功能控件,所述功能控件包括数据访问管理控件和系统功能控制/调度控件;架构组件和功能控件共同生成基于JDBC的数据访问层框架生成组件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述架构组件选择程序架构,包括选择所述架构组件中的JNDI架构组件作为程序架构,或,选择所述架构组件中的 Spring架构组件作为程序架构。
4.根据权利要求3所述的方法,其特征在于,所述在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板,包括在所选的程序架构下,选择数据访问管理控件自动生成所选程序架构的系统配置文件和源程序模板,其中,所述数据访问管理控件包括简单的Java对象基类、数据访问对象类、 系统功能辅助控件和对象/关系映射控件;选择系统功能控制/调度控件组合数据访问管理控件中的各个控件,快速生成数据访问层框架及构件,并提供自动和手动系统部署功能。
5.根据权利要求4所述的方法,其特征在于所述系统功能辅助控件创建XML文件集控件和生成源代码/系统配置文件集控件;所述数据访问管理控件自动生成所选程序架构的系统配置文件和源程序模板,包括所述生成源代码/系统配置文件集控件生成数据访问层框架中的源代码模板和系统配置文件,其中所述源程序代码模板中包含简单的Java对象类、数据访问接口和数据访问接口实现类。
6.根据权利要求5所述的方法,其特征在于,还包括所述对象/关系映射控件提取基于JDBC的相关数据库表结构信息,创建源程序代码模板中的简单的Java对象和简单的Java对象逻辑功能,并实现简单的Java对象继承基类的功能。
7.根据权利要求6所述的方法,其特征在于所述简单的Java对象继承基类的功能,所述功能为判断数据访问层框架中是否存在简单的Java对象,和是否存在与所述简单的Java对象相等的对象。
8.根据权利要求5所述的方法,其特征在于,还包括所述数据访问对象类提供数据库访问功能,其中,在JNDI架构中,所述数据访问对象类为获取数据库访问必要信息提供功能支撑,抽取数据访问的共性,形成数据库操作的公共方法; 或,在Spring架构中,所述数据访问对象类被以依赖注入的方式管理,以属性文件的形式配置和读入数据库配置信息,并以统一的方式加载。
9.根据权利要求5所述的方法,其特征在于,还包括所述XML文件集控件提取基于JDBC的相关数据库表结构信息,自动生成数据访问层框架中存储SQL语句的XML文件。
10.根据权利要求9所述的方法,其特征在于,还包括应用所述XML文件集控件完成XML文件中信息和简单的Java对象之间的映射。
11.一种基于JDBC的数据访问层构建装置,其特征在于,包括生成组件模块,用于通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;选择架构及配置模块,用于根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;建构数据访问层模块,用于由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过相关的程序配置建构数据访问层。
12.根据权利要求11所述的装置,其特征在于,生成组件模块,包括集成开源组件子模块,用于将开源组件集成为架构组件,所述架构组件包括JNDI架构组件,和/或,Spring架构组件;封装功能构件模块,用于将自定义的功能构件封装为功能控件,所述功能控件包括数据访问管理控件和系统功能控制/调度控件;生成组件子模块,用于架构组件和功能控件共同生成基于JDBC的数据访问层框架生成组件。
13.根据权利要求12所述的装置,其特征在于,所述选择架构及配置模块,包括 选择架构子模块,用于选择所述架构组件中的JNDI架构组件作为程序架构,或,选择所述架构组件中的Spring架构组件作为程序架构。
14.根据权利要求13所述的方法,其特征在于,所述选择架构及配置模块,还包括 生成配置及模板子模块,用于在所选的程序架构下,选择数据访问管理控件自动生成所选程序架构的系统配置文件和源程序模板,其中,所述数据访问管理控件包括简单的 Java对象基类、数据访问对象类、系统功能辅助控件和对象/关系映射控件;组合控件子模块,用于选择系统功能控制/调度控件组合数据访问管理控件中的各个控件,快速生成数据访问层框架及构件,并提供自动和手动系统部署功能。
全文摘要
本申请提供了一种基于JDBC的数据访问层构建方法及装置,以解决数据访问层开发过程中程序架构和编程方式各异,系统配置复杂的问题。所述的方法包括通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过相关的程序配置建构数据访问层。能够快速生成数据访问层框架及构件的生成组件,从而降低系统开发复杂度和时间,并且实现数据访问层开发的统一和标准。
文档编号G06F17/30GK102541996SQ20111037456
公开日2012年7月4日 申请日期2011年11月22日 优先权日2011年11月22日
发明者张 浩, 杨旭, 田永宏 申请人:大唐软件技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1