Java通用数据集数据访问框架的设计

2014-12-25 05:25章亚
电脑知识与技术 2014年33期
关键词:Java语言

章亚

摘要:考虑使用数据集组件来连接数据库并操作数据库表中数据在软件开发中的方便性,其具有强大的数据操作能力,在很多开发环境中都提供了相应的数据集组件,但在JAVA语言的开发环境中没有与之对应的数据集组件,一般采用JDBC接口或者OR映射的方式完成数据的操作,其中JDBC接口因其属于较低层次接口需要大量的编程,而OR映射在涉及复杂数据关系及大量数据访问是容易出现性能问题,在借鉴其他环境中数据集的设计理念的基础上,以实际开发要求为目标,设计一种基于JDBC封装的JAVA通用数据集数据访问框架。

关键词:数据集;数据集组件; 数据访问;数据访问框架;JAVA语言

中图分类号:TP311.1 文献标识码:A 文章编号:1009-3044(2014)33-7895-07

Abstract: Consider the convenience in software development of using a dataset component to connect to the database and manipulate data in a database table, it has a powerful data manipulation capabilities, it has provided corresponding data set components in many development environment, but in the development of JAVA language environment, there is no corresponding data set components, it generally used the JDBC interface or a way to complete the operation by OR mapping data, but the JDBC interface belong to the lower level, and requires a lot of programming; The OR mapping method will prone to performance issues while involves complex data relationships and a lot of data access. On the basis of the experience of other environmental data set and on the design concept to the actual development of requirements for the goals, designed a JAVA common data set framework for JDBC-based data access package.

Key words: dataset; dataset component; data access; data access framework; JAVA languag

1 概述

软件开发中,数据库往往是信息系统的基石,即便是最简单的信息系统中都会涉及到数据的持久性和数据的访问。而JAVA作为一种可以撰写跨平台应用软件的面向对象的程序设计语言,被广泛的应用与当前的各种信息系统开发。但对于用Delphi及.Net开发过应用系统的开发人员大多都使用过数据集组件来连接数据库并操作数据库表数据的功能。这些功能使用很方便,同时有强大的数据操纵能力,可以对各种数据库进行统一操纵,数据组件会根据不同数据库的语法要求自动生成新增(insert)、修改(update)及删除(delete)等DML语句对数据库记录进行操纵。在JAVA环境中没有与之对应的数据集组件,JAVA主要依靠JDBC接口[1]来操作数据库数据,但JDBC属于一个较低层次的接口,虽然功能强大但需要较多的编程量,所以使用并不方便。有些JAVA持久层框架[2](如Hibernate)基于JDBC做了一些包装并提出了OR映射的概念,通过操作对象的方式间接操作关系数据库中的记录,由OR映射框架自动将对象的新增、修改、删除等操作自动转换成特定关系数据库的DML语句。这种方式在JAVA世界中应用很多。但OR映射需要许多手工配置,且在涉及大数据量且表间关系复杂的情况时容易出现性能问题。并且对习惯SQL及数据集操作的程序员来说,对于对象的操作不如对记录行的操作直接和灵活。针对这些框架的问题,IBM 和BEA设计了SDO(Service Data Object)[3],方便了数据访问和操作。该文借鉴了SDO的方法及Delphi、.Net数据集的设计理念[4-7],应用软件设计模式方法[8-9],结合实际的开发经验,设计一种基于JDBC的JAVA通用数据集数据访问框架。

2 总体设计

整个框架设计的目标包括:

1)通用性,实现一种通用的关系数据库访问机制,能够独立于数据库,采用一致的数据集的方式访问及操作各种关系数据库。

2) 方便性,充分利用数据库的元数据功能,无需配置就能根据数据集的状态,自动生成某种数据库的DML语句,尽量减少编程量。

3) 扩展性,能支持现存或未来出现的各种关系数据库系统。

设计思路:

为达到以上设计目标,考虑将通用数据集框架主要分为2个大的部分来实现:

第一部分是独立于数据库的,这一部分里,所有操作的实现对数据库来说是完全中立的,无需考虑数据库的差异性;

第二部分是数据库相关的,这一部分里,所有操作的实现都要考虑特定数据库的差异,并通过接口及抽象类使这种差异对第一部分屏蔽。

3 独立于数据库的部分设计

独立于数据库的部分主要是数据表(DataTable)对象,其中包括数据列管理器(DataColumns)、数据列(DataColumn)、数据行管理器(DataRows)、数据行(DataRow)、数据字段(DataField)等对象。对于开发应用开发者来说,主要是对这些部分的对象进行操作。以下对这些对象的功能进行介绍。

参考文献:

[1] 张峋,杨三成.关键技术 JSP与JDBC应用详解[M].北京:中国铁道出版社,2010

[2] 孙卫琴. 精通Hibernate:Java对象持久化技术详解[M].2版.北京:电子工业出版社,2010.

[3] Ueli Wahli,Gabriel Cohen,Matthew Perrins.WebSphere Studio 5.1.2 JavaServer Faces and Service Data Objects[EB/OL].http://www.redbooks.ibm.com/redbooks/pdfs/sg246361.pdf.

[4] 张敬普,丁士锋.精通C# 5.0与.NET 4.5高级编程——LINQ、WCF、WPF和WF[M].北京:清华大学出版社, 2014.

[5] 谢尔顿. NET 4.5与Visual Basic 2012 高级编程[M].7版.北京:清华大学出版社,2014.

[6] 阿加瓦尔. C# 2012数据库编程入门经典[M]. 5版.北京:清华大学出版社. 2013

[7] 石志国. VB.NET数据库编程[M].北京交通大学出版社,2009.

[8] 伽玛.设计模式—可复用面向对象软件的基础[M].北京:机械工业出版社,2013.

[9] 弗里曼.Head First设计模式[M].北京:中国电力出版社,2007.endprint

摘要:考虑使用数据集组件来连接数据库并操作数据库表中数据在软件开发中的方便性,其具有强大的数据操作能力,在很多开发环境中都提供了相应的数据集组件,但在JAVA语言的开发环境中没有与之对应的数据集组件,一般采用JDBC接口或者OR映射的方式完成数据的操作,其中JDBC接口因其属于较低层次接口需要大量的编程,而OR映射在涉及复杂数据关系及大量数据访问是容易出现性能问题,在借鉴其他环境中数据集的设计理念的基础上,以实际开发要求为目标,设计一种基于JDBC封装的JAVA通用数据集数据访问框架。

关键词:数据集;数据集组件; 数据访问;数据访问框架;JAVA语言

中图分类号:TP311.1 文献标识码:A 文章编号:1009-3044(2014)33-7895-07

Abstract: Consider the convenience in software development of using a dataset component to connect to the database and manipulate data in a database table, it has a powerful data manipulation capabilities, it has provided corresponding data set components in many development environment, but in the development of JAVA language environment, there is no corresponding data set components, it generally used the JDBC interface or a way to complete the operation by OR mapping data, but the JDBC interface belong to the lower level, and requires a lot of programming; The OR mapping method will prone to performance issues while involves complex data relationships and a lot of data access. On the basis of the experience of other environmental data set and on the design concept to the actual development of requirements for the goals, designed a JAVA common data set framework for JDBC-based data access package.

Key words: dataset; dataset component; data access; data access framework; JAVA languag

1 概述

软件开发中,数据库往往是信息系统的基石,即便是最简单的信息系统中都会涉及到数据的持久性和数据的访问。而JAVA作为一种可以撰写跨平台应用软件的面向对象的程序设计语言,被广泛的应用与当前的各种信息系统开发。但对于用Delphi及.Net开发过应用系统的开发人员大多都使用过数据集组件来连接数据库并操作数据库表数据的功能。这些功能使用很方便,同时有强大的数据操纵能力,可以对各种数据库进行统一操纵,数据组件会根据不同数据库的语法要求自动生成新增(insert)、修改(update)及删除(delete)等DML语句对数据库记录进行操纵。在JAVA环境中没有与之对应的数据集组件,JAVA主要依靠JDBC接口[1]来操作数据库数据,但JDBC属于一个较低层次的接口,虽然功能强大但需要较多的编程量,所以使用并不方便。有些JAVA持久层框架[2](如Hibernate)基于JDBC做了一些包装并提出了OR映射的概念,通过操作对象的方式间接操作关系数据库中的记录,由OR映射框架自动将对象的新增、修改、删除等操作自动转换成特定关系数据库的DML语句。这种方式在JAVA世界中应用很多。但OR映射需要许多手工配置,且在涉及大数据量且表间关系复杂的情况时容易出现性能问题。并且对习惯SQL及数据集操作的程序员来说,对于对象的操作不如对记录行的操作直接和灵活。针对这些框架的问题,IBM 和BEA设计了SDO(Service Data Object)[3],方便了数据访问和操作。该文借鉴了SDO的方法及Delphi、.Net数据集的设计理念[4-7],应用软件设计模式方法[8-9],结合实际的开发经验,设计一种基于JDBC的JAVA通用数据集数据访问框架。

2 总体设计

整个框架设计的目标包括:

1)通用性,实现一种通用的关系数据库访问机制,能够独立于数据库,采用一致的数据集的方式访问及操作各种关系数据库。

2) 方便性,充分利用数据库的元数据功能,无需配置就能根据数据集的状态,自动生成某种数据库的DML语句,尽量减少编程量。

3) 扩展性,能支持现存或未来出现的各种关系数据库系统。

设计思路:

为达到以上设计目标,考虑将通用数据集框架主要分为2个大的部分来实现:

第一部分是独立于数据库的,这一部分里,所有操作的实现对数据库来说是完全中立的,无需考虑数据库的差异性;

第二部分是数据库相关的,这一部分里,所有操作的实现都要考虑特定数据库的差异,并通过接口及抽象类使这种差异对第一部分屏蔽。

3 独立于数据库的部分设计

独立于数据库的部分主要是数据表(DataTable)对象,其中包括数据列管理器(DataColumns)、数据列(DataColumn)、数据行管理器(DataRows)、数据行(DataRow)、数据字段(DataField)等对象。对于开发应用开发者来说,主要是对这些部分的对象进行操作。以下对这些对象的功能进行介绍。

参考文献:

[1] 张峋,杨三成.关键技术 JSP与JDBC应用详解[M].北京:中国铁道出版社,2010

[2] 孙卫琴. 精通Hibernate:Java对象持久化技术详解[M].2版.北京:电子工业出版社,2010.

[3] Ueli Wahli,Gabriel Cohen,Matthew Perrins.WebSphere Studio 5.1.2 JavaServer Faces and Service Data Objects[EB/OL].http://www.redbooks.ibm.com/redbooks/pdfs/sg246361.pdf.

[4] 张敬普,丁士锋.精通C# 5.0与.NET 4.5高级编程——LINQ、WCF、WPF和WF[M].北京:清华大学出版社, 2014.

[5] 谢尔顿. NET 4.5与Visual Basic 2012 高级编程[M].7版.北京:清华大学出版社,2014.

[6] 阿加瓦尔. C# 2012数据库编程入门经典[M]. 5版.北京:清华大学出版社. 2013

[7] 石志国. VB.NET数据库编程[M].北京交通大学出版社,2009.

[8] 伽玛.设计模式—可复用面向对象软件的基础[M].北京:机械工业出版社,2013.

[9] 弗里曼.Head First设计模式[M].北京:中国电力出版社,2007.endprint

摘要:考虑使用数据集组件来连接数据库并操作数据库表中数据在软件开发中的方便性,其具有强大的数据操作能力,在很多开发环境中都提供了相应的数据集组件,但在JAVA语言的开发环境中没有与之对应的数据集组件,一般采用JDBC接口或者OR映射的方式完成数据的操作,其中JDBC接口因其属于较低层次接口需要大量的编程,而OR映射在涉及复杂数据关系及大量数据访问是容易出现性能问题,在借鉴其他环境中数据集的设计理念的基础上,以实际开发要求为目标,设计一种基于JDBC封装的JAVA通用数据集数据访问框架。

关键词:数据集;数据集组件; 数据访问;数据访问框架;JAVA语言

中图分类号:TP311.1 文献标识码:A 文章编号:1009-3044(2014)33-7895-07

Abstract: Consider the convenience in software development of using a dataset component to connect to the database and manipulate data in a database table, it has a powerful data manipulation capabilities, it has provided corresponding data set components in many development environment, but in the development of JAVA language environment, there is no corresponding data set components, it generally used the JDBC interface or a way to complete the operation by OR mapping data, but the JDBC interface belong to the lower level, and requires a lot of programming; The OR mapping method will prone to performance issues while involves complex data relationships and a lot of data access. On the basis of the experience of other environmental data set and on the design concept to the actual development of requirements for the goals, designed a JAVA common data set framework for JDBC-based data access package.

Key words: dataset; dataset component; data access; data access framework; JAVA languag

1 概述

软件开发中,数据库往往是信息系统的基石,即便是最简单的信息系统中都会涉及到数据的持久性和数据的访问。而JAVA作为一种可以撰写跨平台应用软件的面向对象的程序设计语言,被广泛的应用与当前的各种信息系统开发。但对于用Delphi及.Net开发过应用系统的开发人员大多都使用过数据集组件来连接数据库并操作数据库表数据的功能。这些功能使用很方便,同时有强大的数据操纵能力,可以对各种数据库进行统一操纵,数据组件会根据不同数据库的语法要求自动生成新增(insert)、修改(update)及删除(delete)等DML语句对数据库记录进行操纵。在JAVA环境中没有与之对应的数据集组件,JAVA主要依靠JDBC接口[1]来操作数据库数据,但JDBC属于一个较低层次的接口,虽然功能强大但需要较多的编程量,所以使用并不方便。有些JAVA持久层框架[2](如Hibernate)基于JDBC做了一些包装并提出了OR映射的概念,通过操作对象的方式间接操作关系数据库中的记录,由OR映射框架自动将对象的新增、修改、删除等操作自动转换成特定关系数据库的DML语句。这种方式在JAVA世界中应用很多。但OR映射需要许多手工配置,且在涉及大数据量且表间关系复杂的情况时容易出现性能问题。并且对习惯SQL及数据集操作的程序员来说,对于对象的操作不如对记录行的操作直接和灵活。针对这些框架的问题,IBM 和BEA设计了SDO(Service Data Object)[3],方便了数据访问和操作。该文借鉴了SDO的方法及Delphi、.Net数据集的设计理念[4-7],应用软件设计模式方法[8-9],结合实际的开发经验,设计一种基于JDBC的JAVA通用数据集数据访问框架。

2 总体设计

整个框架设计的目标包括:

1)通用性,实现一种通用的关系数据库访问机制,能够独立于数据库,采用一致的数据集的方式访问及操作各种关系数据库。

2) 方便性,充分利用数据库的元数据功能,无需配置就能根据数据集的状态,自动生成某种数据库的DML语句,尽量减少编程量。

3) 扩展性,能支持现存或未来出现的各种关系数据库系统。

设计思路:

为达到以上设计目标,考虑将通用数据集框架主要分为2个大的部分来实现:

第一部分是独立于数据库的,这一部分里,所有操作的实现对数据库来说是完全中立的,无需考虑数据库的差异性;

第二部分是数据库相关的,这一部分里,所有操作的实现都要考虑特定数据库的差异,并通过接口及抽象类使这种差异对第一部分屏蔽。

3 独立于数据库的部分设计

独立于数据库的部分主要是数据表(DataTable)对象,其中包括数据列管理器(DataColumns)、数据列(DataColumn)、数据行管理器(DataRows)、数据行(DataRow)、数据字段(DataField)等对象。对于开发应用开发者来说,主要是对这些部分的对象进行操作。以下对这些对象的功能进行介绍。

参考文献:

[1] 张峋,杨三成.关键技术 JSP与JDBC应用详解[M].北京:中国铁道出版社,2010

[2] 孙卫琴. 精通Hibernate:Java对象持久化技术详解[M].2版.北京:电子工业出版社,2010.

[3] Ueli Wahli,Gabriel Cohen,Matthew Perrins.WebSphere Studio 5.1.2 JavaServer Faces and Service Data Objects[EB/OL].http://www.redbooks.ibm.com/redbooks/pdfs/sg246361.pdf.

[4] 张敬普,丁士锋.精通C# 5.0与.NET 4.5高级编程——LINQ、WCF、WPF和WF[M].北京:清华大学出版社, 2014.

[5] 谢尔顿. NET 4.5与Visual Basic 2012 高级编程[M].7版.北京:清华大学出版社,2014.

[6] 阿加瓦尔. C# 2012数据库编程入门经典[M]. 5版.北京:清华大学出版社. 2013

[7] 石志国. VB.NET数据库编程[M].北京交通大学出版社,2009.

[8] 伽玛.设计模式—可复用面向对象软件的基础[M].北京:机械工业出版社,2013.

[9] 弗里曼.Head First设计模式[M].北京:中国电力出版社,2007.endprint

猜你喜欢
Java语言
Java语言图形编程工具的设计及应用
高职《Java语言程序设计》课程的“微课”制作与应用研究
论开闭原则在JAVA程序设计中的应用
基于Android平台的健康医疗APP设计与开发
计算机软件开发中的JAVA编程语言分析
用户隐私保护之手机密码保险箱
Android手机三轴加速度传感器使用
基于Java语言的手机软件开发技术分析