一种数据库访问平台及其访问方法

文档序号:6616137阅读:160来源:国知局
专利名称:一种数据库访问平台及其访问方法
技术领域
本发明涉及数据库技术,特别是涉及一种数据库访问平台及其访问方法。
背景技术
在各种业务应用系统的开发过程中,需要多次访问数据库。传统的数据库
处理主要是通过程序员拼写复杂繁瑣的SQL语句完成数据库操作的。SQL是 Structured Quevy Language (结构化查询语言)的缩写,是专为数据库而建立 的操作命令集,是一种功能齐全的数据库语言。
这种传统方式存在的缺点是如果SQL语句书写不规范,或者不完整, 很容易在实际运行过程中产生瓶颈。因此,传统的数据库操作方式对技术人员 的要求很高,程序调试困难,所产生的代码冗长,不易理解,并且很难保证技 术人员的开发效率和测试效率。而且,技术人员能够直接访问数据库连接,对 数据库做不当操作甚至非法操作,这样又会带来安全性问题。
目前在Java领域中,有很多对象持久化工具,如Hibernate、 ibatis、 JDO 等等。他们基本上以实现0/R Mapping (Object-Relationl Mapping,它的作用 是在关系型数据库和对象之间作一个映射)为主,对数据库结构进行了很好地 封装,开发者不需要过多地关心SQL的操作,就可以完成相关的数据持久层 操作。这些持久化工具解决了由于数据库操作带来的开发困难,降低了对开发 人员的技术要求。开发人员可以只提供数据,而不关心具体的表结构和数据库 操作。但是带来的问题是,这些工具配置非常繁瑣,对于开发人员的学习曲线 较长,不易理解。另夕卜,对于高并发的数据交换系统,这些工具相对使用JDBC (全称为Java DataBase Connectivity standard,它是一个面向对象的应用程序 接口 )原生API (Application Programming Interface,应用程序接口 )有一定 的性能损失,容易产生瓶颈。
明内容
本发明所要解决的技术问题是提供一种数据库访问平台及其访问方法,以 解决传统的数据库操作方式存在对技术人员要求高、代码不易理解以及安全性等一系列问题。
为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下
技术方案
一种数据库访问平台,包括
应用访问接口 ,用于提供数据库配置信息的设置,并返回数据库操作结果; 其中,所述数据库配置信息包括数据库名称及访问参数;
数据源获取单元,用于根据配置信息中的数据库名称连接相应的数据库;
数据库单表操作单元,用于根据配置信息中的访问参数调用相应的表结构
信息,并结合生成SQL语句,执行相应的SQL操作;
数据库复杂操作单元,用于根据配置信息中的访问参数调用相应的SQL 模板,并结合生成SQL语句,执行相应的SQL操作。
还包括配置加载单元,用于在启动运行平台时,加载各数据库配置信息。
还包括错误恢复单元,用于当数据库操作发生错误时,将数据库中的数 据恢复为错误发生前的状态。
还包括数据库管理单元,并采用局部事务管理机制和全局事务管理机制, 管理多个数据库的访问。
优选的,所述数据源获取单元根据数据库配置信息,预先创建数据库连接, 当需要访问数据库时,根据数据库名称直接获取相应的数据库连接。
还包括对象转换单元,用于在执行数据库操作之前,将访问数据库的普 通对象转换为平台所识别的基本数据对象;并在返回数据库操作结果时,将所
述基本数据对象再转换为普通对象。 一种数据库访问方法,包括
预置数据库配置信息,其中包括数据库名称及访问参数;
访问数据库时,根据配置信息中的数据库名称连接相应的数据库;
执行数据库操作,如果是单表操作,则根据配置信息中的访问参数调用相
应的表结构信息,并结合生成SQL语句,执行相应的SQL操作;
如果是复杂操作,则根据配置信息中的访问参数调用相应的SQL才莫板,
并结合生成SQL语句,执行相应的SQL操作。
其中,在执行数据库操作之前,还包括将访问数据库的普通对象转换为
基本数据对象;并在返回数据库操作结果时,将所述基本数据对象再转换为普 通对象。 _
其中,在连接数据库之前,还包括加载各数据库配置信息。
还包括错误恢复步骤当数据库操作发生错误时,将数据库中的数据恢复 为错误发生前的状态。
其中,按照以下步骤连接数据库4艮据数据库配置信息,预先创建数据库 连接,当需要访问数据库时,根据数据库名称直接获取相应的数据库连接。
其中,采用局部事务管理机制和全局事务管理机制,管理多个数据库的访问。
根据本发明提供的具体实施例,本发明公开了以下技术效果
本发明实施例提供了 一种开放的数据库访问平台,可适用于不同的应用平 台,提供对各种数据库访问的封装
首先,该平台支持多种数据源,对获取数据库的方式进行封装,通过可配 置化的数据库操作提高了平台的扩展性。使用者通过平台提供的应用访问接口 设置数据库配置信息,平台在启动时加载各数据库配置信息,当需要进行数据 库访问时,根据配置信息中的数据库名称连接相应数据库。优选的,为缩短获 取连接句柄的时间,提高数据访问效率,该平台根据数据库配置信息,预先创 建数据库连接,当操作使用时直接获取。
其次,对数据库操作进行了封装,提供单表操作和复杂操作两种操作方式, 并支持标准的数据库访问方式(如查询、插入、删除、修改等操作)。对于单 表操作,根据配置信息中的访问参数调用相应的表结构信息,并结合生成SQL 语句,执行相应的SQL操作;对于复杂操作,平台预先设置了集合多个简单 操作的SQL模板,运行时根据配置信息中的访问参数调用相应的SQL模板, 并结合生成SQL语句,执行相应的SQL操作。
再次,该平台支持两种事务管理机制局部事务管理和全局事务管理。平 台通过所述两种事务管理机制,对多个数据库的整个访问过程进行管理,保证 多个访问系统的数据一致性。而且,还设置错误恢复机制,当数据库操作发生 错误时,将数据库中的数据恢复为错误发生前的状态。错误恢复也分为局部事 务恢复和全局事务恢复。
综上所述,该平台由于屏蔽了直接的SQL操作,使得开发人员不需要关 心具体的SQL语句拼写和数据库操作,极大降低了对开发人员的技术要求。 而且,开发人员不直接操作数据库,因此保证了数据库操作的安全性。并且, 该平台为开发人员提供了应用访问接口 ,通过设置数据库配置信息即可实现数 据库访问操作,从而实现了可配置化的数据库操作,简化了开发人员的学习使 用过程。


图1是本发明实施例所述数据库访问平台的逻辑结构示意图2是外部应用系统通过图1所示平台访问数据库的流程示意图3是图1所示平台中数据库操作流程图4是本发明实施例所述数据库访问方法的步骤流程图。
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。
本发明实施例提供了 一种数据库访问平台,对数据库结构进行了很好的封 装,屏蔽直接的SQL操作,统一集中地管理数据库操作SQL语句。开发人员 可以利用所述平台实现对数据库的访问操作,而不需要过多地关心具体的SQL 操作。该平台适用于不同的应用平台,具有良好的扩展性。
该平台的实现主要包括数据源获取和数据库操作两部分,下面详细说明。 其中,所述数据源即指平台外部的应用系统所要访问的数据库。
参照图1,是本发明实施例所述数据库访问平台的逻辑结构示意图。
所述平台主要包括应用访问接口 11、数据源获取单元12和数据库操作单 元13,所述应用访问接口 11为开发人员提供了数据库配置信息的设置接口, 所述数据源获取单元12负责根据配置信息连接要访问的数据库,所述数据库 操作单元13负责执行相应的数据库操作。
应用访问接口 11是平台与访问系统的交互接口,由开发人员根据具体访 问情况,利用接口 11设置访问系统要访问的数据库配置信息,配置信息主要 包括要访问的数据库名称、访问参数等信息,其中访问参数包括要访问的数据库URL、数据库驱动、数据库连接池管理、最小连接个数、最大连接个数、 等待时间等等。数据访问平台将根据这些配置信息实现对相应数据库的操作。 应用访问接口 11还用于向访问系统返回相应的数据库操作结果。
所述数据库访问平台支持多种数据源,对获取数据源的方式进行了封装, 这种封装通过数据源获取单元12实现。数据源通过不同的名称加以区分,当 访问系统需要访问某一特定数据源时,数据源获取单元12根据配置信息中的 数据库名称连接相应的数据库。优选的,为提高数据访问效率,所述数据源获 取单元12根据数据库配置信息,预先创建数据库连接,当需要访问某个数据 库时直接从连接池获取已建立的连接,从而缩短获取连接句柄的时间。
数据库操作单元13提供了两种操作, 一种是单表操作,另一种是复杂操 作,因此又细分为单表操作单元131和复杂操作单元132。单表操作是指针对 一张数据表的才喿作,而且是简单的数据库操作,可以理解为通过一个操作动作 就能完成的操作,如插入、删除、修改等最基本的数据库操作。复杂操作一般 用于多表操作,或者是需要调用SQL计算功能的数据库操作;复杂SQL操作 也可以应用于需要对数据库操作有针对性优化的SQL。单表操作和复杂操作 为开发人员提供了灵活、便捷的数据库访问方式。
单表操作单元131负责执行单表操作,根据数据库配置信息中的访问参 数,以及相应的表结构信息,自动拼写和执行SQL操作。单表纟喿作单元131 会根据用户提供的数据(即访问参数),通过JDBC提供的接口获得相应的数 据库表信息(即表结构信息),然后将数据库表信息和用户提供的数据结合, 自动拼装SQL语句,从而减少了开发人员拼装SQL语句的麻烦。
例如,对于一张消费记录表,包含三个字段消费日期、账号、金额。简 单数据库操作只是对这三个字段的更新和查询操作。对于查询操作,程序员不 需要知道具体的表结构是什么,只需要在接口中指明需要查询消费记录表以及 查询条件(消费日期和账号),就可以查明消费金额。
复杂操作单元132执行复杂操作,复杂操作的处理首先需要开发人员根据 应用的实际情况,预先将SQL语句的模板按照约定好的格式配置到指定文件 中,所述SQL模板是针对应用的操作集合。在运行时,平台调用用户通过应 用访问接口 ll提供的参数,获得相应的SQL语句模板;最后将模板和用户提
供的数据,自动拼装生成SQL语句。
复杂操作是指不能通过简单的单表查询完成的操作,可应用于三种场景 中第一,多表联合操作。例如有账号表,包含三个字段(账号(PK)、姓名、 身份证号)。如果要根据指定消费记录查询消费者的姓名,程序员需要预先写 好SQL模版,通过消费纪录表和账号表中的账号字段关联获取姓名;第二, 对于单表中的需要计算的操作,例如查询消费记录表中,金额大于1000元的 查询;第三,对于需要使用数据库某些优化特性的SQL语句。例如,在查询 消费记录表时,强制使用曰期索引。强制使用某个索引,是某些数据库的优化 特性,但简单的单表操作不能够表达。因此,只能通过复杂SQL操作优化操 作的执行效率。
平台在运行时是调用单表操作单元131还是调用复杂操作单元132,是由 开发人员预先配置好的。开发人员会通过应用访问接口 ll设置操作类型,在 数据库访问过程中,平台根据预先的设置来调用相应的操作单元。
优选的,为统一平台内部的数据管理,所述平台还设置了对象转换单元 14,用于在执行数据库操作之前,将访问数据库的普通对象转换为平台所识别 的基本数据对象;并在单表操作单元131或复杂操作单元132返回数据库操作 结果时,将所述基本数据对象再转换为普通对象。例如,将"账号"字段转换 为平台内部的"account"字段。
优选的,所述平台还包括数据库管理单元15,负责管理多个数据库的访 问。所述凄t据库管理单元15通过统一协调平台中各个单元的调度,实现数据 库事务的管理。所述事务定义为对应用程序状态的相关才喿作的集合,事务具有 原子性、 一致性、隔离性以及持久性这几个属性,这些属性统称为ACID属性。 该定义中应用程序的状态包含影响应用程序操作的所有内存和磁盘中的数据 项目——应用程序"知道"的所有内容;应用程序状态可以存储在内存、文 件或者数据库中;如果系统发生故障,例如应用程序、网络或者计算机系统崩 溃,则我们想确保当重新启动系统时,可以恢复应用程序的状态。
本实施例中,数据库事务的管理分为局部事务和全局事务,因此数据库管 理单元15采用局部事务管理机制和全局事务管理机制。其中,所述局部事务 管理是指针对一个数据源的管理,通常由当前应用独立管理数据库事务;所述
全局事务管理是指同时对多个数据源的管理,或者是同时有多个应用访问的情
况,是多个局部事务的集合。本实施例中,全局事务利用JTS框架(Java Transaction Service, Java事务服务,是Java中进行分布式事务管理的技术标 准),能够统一提交不同应用的数据库处理,保证多个访问系统的数据一致性。
优选的,为配合所述数据库事务管理,所述平台还包括错误恢复单元16, 用于当数据库操作发生错误时,将数据库中的数据恢复为错误发生前的状态。 所述错误恢复单元16实现的功能是作为数据库管理的一部分,由数据库管理 单元15调度实现多个访问系统的数据一致性。
举例说明,在转账处理过程中,资金从账户A转到账户B,详细过程是 先从账户A扣除资金,然后在账户B添加相应额度的资金。但是,由于在转 账过程中发生故障,资金已经从账户A扣除,但还没有添加到账户B。在这 种情况下,数据库管理单元15就要调用错误恢复单元16,恢复账户A中被扣 除的资金,这种操作称为事务回滚。数据库管理单元15通过事务提交、事务 回滚等操作管理数据库,在实际的应用中,用户可以根据实际情况开启事务, 当操作结束时,提交事务,当有意外发生时,事务回滚。
本实施例中,局部事务管理是基于JDBC的事务管理机制,全局事务管理 是基于JTA (Java Transaction API, Java事务接口 )的事务管理机制。JDBC 的事务管理是指在获取 JDBC Connection 实例之后,调用 Connection.setAutoCommit设定事务提交模式。JTA的事务管理是指JTA事务 管理由JTA容器实现,JTA容器对当前加入事务的众多Connection进行调度, 实现其事务性要求。JTA的事务周期可横跨多个JDBC Connection生命周期。 相应的,错误恢复也分为局部事务和全局事务;全局事务利用JTS接口,可以 提供多个应用系统之间的数据库错误恢复机制。
优选的,本实施例在启动平台时,通过配置加载单元17将应用访问4妄口 11设置的所有数据库配置信息加载到平台中。
综上所述,外部应用系统通过本发明实施例提供的平台访问it据库的方式 参照图2所示开发人员首先通过平台提供的应用访问接口 ll设置数据库配 置信息,然后启动平台;平台首先通过配置加载单元17加载所有的数据库配 置信息,然后利用数据源获取单元12,根据要访问的数据库名称获取该配置的数据源;系统采用数据库连接池管理数据源,应用系统通过连接池获得连接, 而当连接使用完毕后,释妹到连接池中;应用获得连接后,可通过数据库管理 单元15启动数据库事务管理,并调用数据库操作单元13开始执行相应的数据 库操作;当操作结束时,提交事务,即将数据库操作结果通过应用访问接口 11返回给相应的应用系统;当发生错误时,事务回滚,即将数据库中的数据 恢复为错误发生前的状态。在此过程中,无论是釆用局部事务管理还是全局事 务管理,都可以根据配置信息调用单表操作单元131或复杂操作单元132。
参照图3,是所述数据库操作单元13的数据库操作流程图。进行数据库 访问时,首先调用对象转换单元14将普通对象转换为基本数据对象,然后根 据调用的接口不同,区分是单表操作还是复杂操作;如果是单表操作,则根据 相应的表结构信息和使用者提供的数据,拼写和执行操作SQL;如果是复杂 操作,则预先按照指定格式配置将SQL模板保存在指定的位置文件中,在运 行时首先获取SQL模板,然后根据模板中的参数,拼写和运行SQL;当调用 单表操作单元131或复杂操作单元132完成基本数据操作后,再通过对象转换 单元14将基本数据对象转换为普通对象,然后实现事务提交或回滚。
综上,本发明实施例提供的凝:据库访问平台,可适用于不同的应用平台, 提供对各种数据库访问的封装
首先,该平台支持多种数据源,对获取数据库的方式进行封装,通过可配 置化的数据库操作提高了平台的扩展性;其次,对数据库操作进行了封装,提 供单表操作和复杂操作两种操作方式,并支持标准的数据库访问方式(如查询、插入、删除、修改等操作);再次,该平台支持两种事务管理机制局部事务 管理和全局事务管理。平台通过所述两种事务管理机制,对多个数据库的整个 访问过程进行管理,保证多个访问系统的数据一致性。而且,还设置错误恢复 机制,当数据库操作发生错误时,将数据库中的数据恢复为错误发生前的状态。 错误恢复也分为局部事务恢复和全局事务恢复。
该平台由于屏蔽了直接的SQL操作,使得开发人员不需要关心具体的 SQL语句拼写和数据库操作,极大降低了对开发人员的技术要求。而且,开 发人员不直接操作数据库,因此保证了数据库操作的安全性。并且,该平台为 开发人员提供了应用访问接口 ,通过设置数据库配置信息即可实现数据库访问 操作,从而实现了可配置化的数据库操作,简化了开发人员的学习使用过程。
针对上述数据库访问平台,本发明还提供了一种数据库访问方法,参照图
4,是所述数据库访问方法的步骤流程图。
步骤401,配置加载步骤;
平台启动运行后,加载数据库配置信息,所述配置信息包括数据库名称及 访问参数等信息,由开发人员预先设置;。 步骤402,获取数据源步骤; 即根据配置信息中的数据库名称连接相应的数据库; 步骤403,数据转换步骤;
即将访问系统的普通对象转换为平台能够识别的基本数据对象; 步骤404,数据库才喿作步骤;
分为单表操作和复杂操作,如果是单表操作,则根据配置信息中的访问参 数调用相应的表结构信息,并将访问参数和表结构信息结合生成SQL语句, 执行相应的SQL操作;如果是复杂操作,则根据配置信息中的访问参数调用 相应的SQL模板,并将访问参数和SQL模板结合生成SQL语句,执行相应 的SQL操作;
步骤405,数据转换步骤;
当执行完数据库操作后,将操作结果进行数据转换,即将平台内部的基本 数据对象转换为普通对象;
步骤406,操作结果返回步骤。
将操作结果返回给相应的访问系统。如果在数据库操作过程中发生错误, 则利用错误恢复机制,将数据库中的数据恢复为错误发生前的状态,从而保证 数据一致性。
图4所示方法中未详述的部分可以参见图1所示装置的相关部分,为了篇 幅考虑,在此不再详述。
以上对本发明所提供的一种数据库访问平台及其访问方法,进行了详细介
例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的 一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变 之处。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种数据库访问平台,其特征在于,包括应用访问接口,用于提供数据库配置信息的设置,并返回数据库操作结果;其中,所述数据库配置信息包括数据库名称及访问参数;数据源获取单元,用于根据配置信息中的数据库名称连接相应的数据库;数据库单表操作单元,用于根据配置信息中的访问参数调用相应的表结构信息,并结合生成SQL语句,执行相应的SQL操作;数据库复杂操作单元,用于根据配置信息中的访问参数调用相应的SQL模板,并结合生成SQL语句,执行相应的SQL操作。
2、 根据权利要求1所述的数据库访问平台,其特征在于,还包括配置 加载单元,用于在启动运行平台时,加载各数据库配置信息。
3、 根据权利要求1所述的数据库访问平台,其特征在于,还包括错误 恢复单元,用于当数据库操作发生错误时,将数据库中的数据恢复为错误发生 前的状态。
4、 根据权利要求1所述的数据库访问平台,其特征在于,还包括数据 库管理单元,并采用局部事务管理机制和全局事务管理机制,管理多个数据库 的i方问。
5、 根据权利要求1所述的数据库访问平台,其特征在于所述数据源获 取单元根据数据库配置信息,预先创建数据库连接,当需要访问数据库时,根 据数据库名称直接获取相应的数据库连接。
6、 根据权利要求1所述的数据库访问平台,其特征在于,还包括对象 转换单元,用于在执行数据库操作之前,将访问数据库的普通对象转换为平台 所识别的基本数据对象;并在返回数据库操作结果时,将所述基本数据对象再 转换为普通对象。
7、 一种数据库访问方法,其特征在于,包括 预置数据库配置信息,其中包括数据库名称及访问参数; 访问数据库时,根据配置信息中的数据库名称连接相应的数据库; 执行数据库操作,如果是单表操作,则才艮据配置信息中的访问参数调用相应的表结构信息,并结合生成SQL语句,执行相应的SQL操作;如果是复杂操作,则根据配置信息中的访问参数调用相应的SQL模板, 并结合生成SQL.语句,执行相应的SQL操作。
8、 根据权利要求7所述的方法,其特征在于,在执行数据库操作之前, 还包括将访问数据库的普通对象转换为基本数据对象;并在返回数据库操作 结果时,将所述基本数据对象再转换为普通对象。
9、 根据权利要求7所述的方法,其特征在于,在连接数据库之前,还包 括加载各数据库配置信息。
10、 根据权利要求7所述的方法,其特征在于,还包括错误恢复步骤当 数据库操作发生错误时,将数据库中的数据恢复为错误发生前的状态。
11、 根据权利要求7所述的方法,其特征在于,按照以下步骤连接数据库 根据数据库配置信息,预先创建数据库连接,当需要访问数据库时,根据数据 库名称直接获取相应的数据库连接。
12、 根据权利要求7所述的方法,其特征在于采用局部事务管理机制和 全局事务管理^L制,管理多个凝:据库的访问。
全文摘要
本发明公开了一种数据库访问平台及其访问方法,解决传统的数据库操作方式存在对技术人员要求高、代码不易理解以及安全性等问题。所述平台主要包括应用访问接口,用于提供数据库配置信息的设置,并返回数据库操作结果;数据源获取单元,用于根据配置信息中的数据库名称连接相应的数据库;数据库单表操作单元,用于根据配置信息中的访问参数调用相应的表结构信息,并结合生成SQL语句,执行相应的SQL操作;数据库复杂操作单元,用于根据配置信息中的访问参数调用相应的SQL模板,并结合生成SQL语句,执行相应的SQL操作。该平台由于屏蔽了直接的SQL操作,使得开发人员不需要关心具体的SQL语句拼写和数据库操作,极大降低了对开发人员的技术要求。
文档编号G06F17/30GK101196926SQ20071030775
公开日2008年6月11日 申请日期2007年12月29日 优先权日2007年12月29日
发明者吴炜斯, 李志钧, 芬 杨, 王迎春 申请人:中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1