CN102541996B - 一种基于jdbc的数据访问层构建方法及装置 - Google Patents
一种基于jdbc的数据访问层构建方法及装置 Download PDFInfo
- Publication number
- CN102541996B CN102541996B CN201110374561.4A CN201110374561A CN102541996B CN 102541996 B CN102541996 B CN 102541996B CN 201110374561 A CN201110374561 A CN 201110374561A CN 102541996 B CN102541996 B CN 102541996B
- Authority
- CN
- China
- Prior art keywords
- data access
- control
- access layer
- function
- framework
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000015572 biosynthetic process Effects 0.000 claims description 59
- 238000010276 construction Methods 0.000 claims description 44
- 238000013507 mapping Methods 0.000 claims description 18
- 238000005538 encapsulation Methods 0.000 claims description 10
- 239000000284 extract Substances 0.000 claims description 8
- 238000011161 development Methods 0.000 abstract description 11
- 230000018109 developmental process Effects 0.000 abstract description 11
- 230000033772 system development Effects 0.000 abstract description 4
- 238000004806 packaging method and process Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 70
- 230000000875 corresponding effect Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000012423 maintenance Methods 0.000 description 8
- 230000000712 assembly Effects 0.000 description 5
- 238000000429 assembly Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 4
- 235000014552 Cassia tora Nutrition 0.000 description 4
- 244000201986 Cassia tora Species 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请提供了一种基于JDBC的数据访问层构建方法及装置,以解决数据访问层开发过程中程序架构和编程方式各异,系统配置复杂的问题。所述的方法包括:通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过相关的程序配置建构数据访问层。能够快速生成数据访问层框架及构件的生成组件,从而降低系统开发复杂度和时间,并且实现数据访问层开发的统一和标准。
Description
技术领域
本申请涉及数据库技术,特别是涉及一种基于JDBC的数据访问层构建方法及装置。
背景技术
JDBC是一种用于执行SQL语句的Java API可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。其中,JDBC为Java Data Base Connectivity,java数据库连接;SQL为Structured Query Language结构化查询语言;API为Application Programming 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的数据访问层构建方法示意图。
具体的,通过数据库访问相关的架构组件、数据访问管理控件及系统控制/调度控件生成数据访问层框架及构件。其中,数据访问管理控件包括POJO(简单的Java对象)基类、DAO(数据访问对象)、系统功能辅助控件、对象/关系映射控件和生成源代码/系统配置文件集控件;构架组件集成Spring架构和封装JNDI组件。
数据访问层框架包括自动生成的目标构件:包含标识SQL语句的XML配置文件集、系统模块信息配置文件集、数据库访问层的源程序模板代码、JNDI架构程序包及应用程序编程接口封装类和Spring架构程序包及组件配置文件。
其中,所述系统模块信息配置文件集包括:数据库连接配置文件、JNDI 目录服务命名配置文件、系统模块的Spring依赖注入功能相关配置文件等。
所述源程序模板代码包含:POJO类、DAO接口、DAO接口实现类和相关的功能支持类。
参照图5,给出了本申请实施例所述一种基于JDBC的数据访问层构建方法组件功能实现原理图。
其中图中数字分别代表:1、POJO继承VO基类的功能;2、DaoImpl实现Dao接口的方法;3、DaoImpl调用POJO;4、DaoImpl调用SqlManager类,实现sql语句的管理;5、DaoImpl类继承JNDI架构(JNDI FrameWork)的AbstractDao抽象类;6、AbstractDao抽象类调用CustomRowProcessor中产生POJO对象和POJO对象集合的方法;7、AbstractDao抽象类调用InitializeConnectionPool类,实现对数据库连接池的初始化功能;8、InitializeConnectionPool类实现InitialContext接口;9、DaoImpl类调用适用于Spring架构(Spring FrameWork)的BaseJdbcDao类;10、BaseJdbcDao类被Spring架构以依赖注入的方式管理;11、JdbcTemplate继承JdbcDaoSupport;12、InitialContext类Context实现接口。
图中+代表共有方法,可被其他对象调用;-代表独有方法,不能被其他对象调用。例如,在DaoImpl调用SqlManager类,可以调用其中的createXML、loadSqlFile和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编程的方式生成数据访问层接口模式的源代码模板和相关的系统配置文件。应用DaoImpl类实现Dao接口的方法包括:getObject(获得Pojo对象)、getObjectList(获得Pojo对象集合)、add(添加对象方法)、edit(编辑对象方法)、delete(删除对象方法)等,在Spring架构下,DaoImpl调用BaseJdbcDao类,以依赖注入的方式管理。
其中,所述源程序代码模板中包含简单的Java对象类、数据访问接口和数据访问接口实现类和相关的功能支持类。
优选的,所述对象/关系映射控件提取基于JDBC的相关数据库表结构信息,创建源程序代码模板中的简单的Java对象和简单的Java对象逻辑功能,并实现简单的Java对象继承值对象基类的功能。
其中,对象/关系映射控件定义了CustomRowProcessor类,主要定义了三个类方法,createBean、toBean和toBeanList。createBean负责创建POJO,toBean负责数据库关系映射为POJO对象,toBeanList负责数据库关系映射为POJO对象集合。
优选的,所述实现简单的Java对象继承基类的功能,还包括:
所述简单的Java对象继承值对象基类的功能,所述功能为判断数据访问层框架中是否存在简单的Java对象,和是否存在与所述简单的Java对象相等的对象。其中,basic attributes为基本属性。
VO基类是一个可序列化,即简单的Java对象实现Serializable接口,能够以一连串的字节描述的过程。其方法可被子类继承的JavaBean,实现一种具有共性的功能,equal即判断POJO对象是否和另一个对象相等,或hascode 判断POJO对象是否具有本对象的实例,所述功能可被POJO继承。其中,序列化时将对象的状态信息转换为可以存储或传输的形式的过程。
在数据访问层的开发过程中,通过创建一个可序列化,其方法可被POJO继承的JavaBean式的VO基类,实现判断POJO对象之间是相等或判断是否具有本对象实例的功能。其中,实例(instance)和对象(object)的区别为对象就是类的实例,所有的对象都是实例,但并不是所有的实例都是对象。
优选的,所述数据访问对象类提供数据库访问功能,其中,
在JNDI架构中,所述数据访问对象类为获取数据库访问必要信息提供功能支撑,抽取数据访问的共性,形成数据库操作的公共方法;
或,
在Spring架构中,所述数据访问对象类被以依赖注入的方式管理,以稳健的形式配置和读入数据库配置信息,并以统一的方式加载。
DaoImpl类的实现方式有两种实现方式,即继承适应于JNDI架构的AbstractDao抽象类和调用适用于Spring架构的BaseJdbcDao类。
引入JNDI程序包,AbstractDao抽象类调用封装JNDI Javax.naming包的访问命名服务Context接口和接口实现类InitialContext的InitializeConnectionPool类,为获取数据库访问必要信息提供功能支撑,并抽取数据访问的共性,形成数据库操作的公共方法,比如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信息(由loadSqlFile方法实现),并提供读取SQL信息功能(由getSql方法实现)。
针对SQL信息表现方式及SQL语句预加载的技术问题,通过如下的技术手段加以解决:
1.通过XML的Xml Schema文档模式技术对系统业务模块的SQL语句进行逻辑结构上的定义,不同的业务模块SQL信息可以定义到不同的XML文件中;
2.自定义包含标识SQL语句的XML文件集控件,控件利用JDOM(基于Java的XML文档对象模型)技术,通过基于JDBC的数据库编程方式提取到的相关数据库表结构信息,自动生成包含符合xml schema逻辑结构的、具有基本增、删、改、查功能的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 Interface,用户交互界面)。
参照图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对象相等的对象。
数据库访问单元1224,用于所述数据访问对象类提供数据库访问功能,其中,
在JNDI架构中,所述数据访问对象类为获取数据库访问必要信息提供功能支撑,抽取数据访问的共性,形成数据库操作的公共方法;
或,
在Spring架构中,所述数据访问对象类被以依赖注入的方式管理,以属性文件的形式配置和读入数据库配置信息,并以统一的方式加载。
生成XML文件单元1225,用于所述XML文件集控件提取基于JDBC的相关数据库表结构信息,自动生成数据访问层框架中存储SQL语句的XML文件。
所述生成XML文件单元1225,还用于应用所述XML文件集控件完成XML文件中信息和简单的Java对象之间的映射。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请所提供的一种基于JDBC的数据访问层构建方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种基于JDBC的数据访问层构建方法,其特征在于,包括:
通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;
其中,所述通过架构开源组件并封装功能控件,生成基于JDBC的数据访问层框架生成组件,包括:
将开源组件集成为架构组件,所述架构组件包括JNDI架构组件,和/或,Spring架构组件;
将自定义的功能构件封装为功能控件,所述功能控件包括数据访问管理控件和系统功能控制/调度控件;
架构组件和功能控件共同生成基于JDBC的数据访问层框架生成组件;
根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;
其中,所述在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板,包括:
在所选的程序架构下,选择数据访问管理控件并配置相应的数据信息,自动生成所选程序架构的系统配置文件和源程序模板,其中,所述数据访问管理控件包括简单的Java对象基类、数据访问对象类、系统功能辅助控件和对象/关系映射控件;
所述系统功能辅助控件创建XML文件集控件和生成源代码/系统配置文件集控件;
所述数据访问管理控件自动生成所选程序架构的系统配置文件和源程序模板,包括:
所述生成源代码/系统配置文件集控件生成数据访问层框架中的源代码模板和系统配置文件,其中所述源程序代码模板中包含简单的Java对象类、数据访问接口和数据访问接口实现类;
选择系统功能控制/调度控件组合数据访问管理控件中的各个控件,快速生成数据访问层框架及构件,并提供自动和手动系统部署功能;
由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过相关的程序配置建构数据访问层。
2.根据权利要求1所述的方法,其特征在于,所述根据所述架构组件选择程序架构,包括:
选择所述架构组件中的JNDI架构组件作为程序架构,或,选择所述架构组件中的Spring架构组件作为程序架构。
3.根据权利要求1所述的方法,其特征在于,还包括:
所述对象/关系映射控件提取基于JDBC的相关数据库表结构信息,创建源程序代码模板中的简单的Java对象和简单的Java对象逻辑功能,并实现简单的Java对象继承基类的功能。
4.根据权利要求3所述的方法,其特征在于:
所述简单的Java对象继承基类的功能,所述功能为判断数据访问层框架中是否存在简单的Java对象,和是否存在与所述简单的Java对象相等的对象。
5.根据权利要求1所述的方法,其特征在于,还包括:
所述数据访问对象类提供数据库访问功能,其中,
在JNDI架构中,所述数据访问对象类为获取数据库访问必要信息提供功能支撑,抽取数据访问的共性,形成数据库操作的公共方法;
或,
在Spring架构中,所述数据访问对象类被以依赖注入的方式管理,以属性文件的形式配置和读入数据库配置信息,并以统一的方式加载。
6.根据权利要求1所述的方法,其特征在于,还包括:
所述XML文件集控件提取基于JDBC的相关数据库表结构信息,自动生成数据访问层框架中存储SQL语句的XML文件。
7.根据权利要求6所述的方法,其特征在于,还包括:
应用所述XML文件集控件完成XML文件中信息和简单的Java对象之间的映射。
8.一种基于JDBC的数据访问层构建装置,其特征在于,包括:
生成组件模块,用于通过集成开源组件并封装自定义的功能构件,生成基于JDBC的数据访问层框架生成组件,其中,所述生成组件中包括架构组件和功能控件;
其中,生成组件模块,包括:
集成开源组件子模块,用于将开源组件集成为架构组件,所述架构组件包括JNDI架构组件,和/或,Spring架构组件;
封装功能构件模块,用于将自定义的功能构件封装为功能控件,所述功能控件包括数据访问管理控件和系统功能控制/调度控件;
生成组件子模块,用于架构组件和功能控件共同生成基于JDBC的数据访问层框架生成组件;
选择架构及配置模块,用于根据所述架构组件选择程序架构,在所选的程序架构下,选择相应的功能控件产生适用于该程序架构的系统配置文件和源程序模板;
其中,所述选择架构及配置模块,还包括:
生成配置及模板子模块,用于在所选的程序架构下,选择数据访问管理控件并配置相应的数据信息,自动生成所选程序架构的系统配置文件和源程序模板,其中,所述数据访问管理控件包括简单的Java对象基类、数据访问对象类、系统功能辅助控件和对象/关系映射控件;所述系统功能辅助控件创建XML文件集控件和生成源代码/系统配置文件集控件;
所述生成配置及模板子模块具体包括:所述生成源代码/系统配置文件集控件生成数据访问层框架中的源代码模板和系统配置文件,其中所述源程序代码模板中包含简单的Java对象类、数据访问接口和数据访问接口实现类;
组合控件子模块,用于选择系统功能控制/调度控件组合数据访问管理控件中的各个控件,快速生成数据访问层框架及构件,并提供自动和手动系统部署功能;
建构数据访问层模块,用于由上述所选的程序架构和该程序架构的系统配置文件及源程序模板,通过相关的程序配置建构数据访问层。
9.根据权利要求8所述的装置,其特征在于,所述选择架构及配置模块,包括:
选择架构子模块,用于选择所述架构组件中的JNDI架构组件作为程序架构,或,选择所述架构组件中的Spring架构组件作为程序架构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110374561.4A CN102541996B (zh) | 2011-11-22 | 2011-11-22 | 一种基于jdbc的数据访问层构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110374561.4A CN102541996B (zh) | 2011-11-22 | 2011-11-22 | 一种基于jdbc的数据访问层构建方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102541996A CN102541996A (zh) | 2012-07-04 |
CN102541996B true CN102541996B (zh) | 2014-05-07 |
Family
ID=46348892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110374561.4A Expired - Fee Related CN102541996B (zh) | 2011-11-22 | 2011-11-22 | 一种基于jdbc的数据访问层构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541996B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102480B (zh) * | 2013-04-11 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 生成配置文件的方法和装置 |
CN104021000B (zh) * | 2014-06-17 | 2017-08-29 | 山东中创软件工程股份有限公司 | 使用动态路径下的属性文件配置spring数据源的方法 |
CN104363165A (zh) * | 2014-11-14 | 2015-02-18 | 华东电网有限公司 | 一种内外网隔离环境下的信息互动系统及数据集成方法 |
CN105550354B (zh) * | 2015-12-29 | 2019-05-31 | 珠海金山网络游戏科技有限公司 | 一种配置文件管理的方法和系统 |
CN107273116B (zh) * | 2017-05-22 | 2020-09-25 | 互联天下科技发展(深圳)有限公司 | 采用基于框架的代码生成工具生产代码的方法 |
CN107797793B (zh) * | 2017-11-23 | 2020-10-23 | 浪潮软件科技有限公司 | 一种构建代理服务器框架的方法和装置 |
CN108491204A (zh) * | 2018-03-30 | 2018-09-04 | 四川九阵科技股份有限公司 | 一种医疗软件系统及方法 |
CN108984236A (zh) * | 2018-08-08 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种虚拟化管理平台的实现方法及设备 |
CN109768542B (zh) * | 2018-12-14 | 2022-10-11 | 中国电力科学研究院有限公司 | 一种大规模电网电磁暂态自动建模的继承方法及系统 |
CN110413352B (zh) * | 2019-07-15 | 2020-11-03 | 北京天眼查科技有限公司 | 应用组件的调用方法和装置 |
CN112068882B (zh) * | 2020-09-07 | 2024-06-21 | 广东电力信息科技有限公司 | 一种基于混合持久化框架的数据处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6845376B1 (en) * | 2001-10-30 | 2005-01-18 | Unisys Corporation | Method for accessing hierarchical data via JDBC |
CN201259678Y (zh) * | 2008-03-04 | 2009-06-17 | 烽火通信科技股份有限公司 | 一种灵活通用的rfid系统 |
-
2011
- 2011-11-22 CN CN201110374561.4A patent/CN102541996B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6845376B1 (en) * | 2001-10-30 | 2005-01-18 | Unisys Corporation | Method for accessing hierarchical data via JDBC |
CN201259678Y (zh) * | 2008-03-04 | 2009-06-17 | 烽火通信科技股份有限公司 | 一种灵活通用的rfid系统 |
Non-Patent Citations (2)
Title |
---|
基于Spring框架的轻量级J2EE架构与应用;胡启敏等;《计算机工程与应用》;20080229;第44卷(第5期);第115-118,133页 * |
胡启敏等.基于Spring框架的轻量级J2EE架构与应用.《计算机工程与应用》.2008,第44卷(第5期),第115-118,133页. |
Also Published As
Publication number | Publication date |
---|---|
CN102541996A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541996B (zh) | 一种基于jdbc的数据访问层构建方法及装置 | |
JP5021193B2 (ja) | 拡張可能ワークフローモデルの宣言的表現 | |
US20060074737A1 (en) | Interactive composition of workflow activities | |
JP2002544589A (ja) | ビジネスオブジェクトインタフェースをビジュアルにカスタマイズするシステムおよび方法 | |
Schleicher et al. | Beyond stereotyping: Metamodeling approaches for the UML | |
JP2006107481A (ja) | 設計時および実行時にワークフローを継ぎ目なくオーサリングし編集するためのフレームワーク | |
CN101256492A (zh) | 一种进行模型驱动架构的软件开发方法及其系统 | |
US20050108684A1 (en) | Method and system for generating an application object repository from application framework metadata | |
CN102221998A (zh) | 一种扩展构件运行支撑平台中ejb容器的方法 | |
CN102681825A (zh) | 服务运行容器管理系统和方法 | |
CN104298512A (zh) | 一种基于OSGi标准的功能组件式集成开发系统 | |
CN105630563A (zh) | 基于xml的继电保护装置规约的动态模型配置方法 | |
Hou | Design and implementation of the framework for Spring+ SpringMVC+ MyBatis in the development of web application | |
CN103164200B (zh) | 一种用于应用系统开发的控制方法 | |
CN101251796A (zh) | 基于依赖注入的分布式构件依赖关系管理方法 | |
Cheong et al. | Frame-based method for customizing generic software architectures | |
US11080102B2 (en) | System and method for developing modularized application | |
Rahmouni et al. | MDA-based modeling and transformation to generate N-Tiers web models | |
CN103714035B (zh) | 一种用于集成环境的多层软件总线结构 | |
Deng et al. | Addressing domain evolution challenges in software product lines | |
Wieland et al. | Context model for representation of business process management artifacts | |
CN113342399B (zh) | 应用项目的结构配置方法、装置及可读存储介质 | |
Linecker et al. | Portability of Interfaces in Healthcare EAI Environments | |
CN111736826B (zh) | 多源遥感数据工程工具集系统及集成方法 | |
Mertens et al. | Metamodel-driven property management in process industries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140507 |