欢迎来到天天文库
浏览记录
ID:34637760
大小:118.61 KB
页数:3页
时间:2019-03-08
《设计模式在java数据库编程中的运用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、人/才/培/养/与/就/业设计模式在Java数据库编程中的运用北京交通大学王熙卢苇/文JDBC技术是Java语言中数据库编程的标准,近年如果每次对数据库访问都单单进行以上的操作过来随着B/S应用的广泛兴起,Java技术在目前的服务器程,而不进行一定的组织设计,那么代码的冗余度将端越来越受重用。作为信息系统中关键的一部分,数据会十分高,程序员的工作量也十分大,并且编写出来库编程是编程人员必须掌握的一部分。JDBC技术本身的代码也很不灵活,因此有必要引入一定的设计模式提供了一些可用的编程接口来完成一些基础事务的处来提高代码的可复用度与可扩展
2、性。理,但我们也发现,如果只是单纯地使用JDBC规范中3.利用FactoryMethod模式控制数据库连接的产生提供的编程接口来完成事务逻辑的话,代码的冗余度十在实际的已经确定的系统中,数据库往往是很少分高,编程效率也很低。基于此,如果在底层接口的基变化的,所以获取数据库的第一步在几乎所有的访问础之上,运用适当的设计模式进行抽象封装,并加以一中都是相同的,为了提高复用度,有必要把它提取成些特定的设计以后,就会在JDBC规范接口之上形成一一个单独的模块。在这里,只可以使用Factory个可扩展的框架。在这个抽象层次上进行开发,不论是Met
3、hod来封装产生数据库连接操作。考虑到连接的频重用性、可靠性,还是开发效率,都会大大提高。繁性,没有必要每次要求访问数据库都对数据库申请1.设计模式要点产生连接,我们可以使用连接池技术来管理一定数量所谓模式,就是对特定情形下特定问题的解决方的数据库连接,这里我们定义一个ConnectionPool类,案。这些方案,往往是经验的总结,是公认优秀的。设其产生数据库连接的操作定义为newConnection()。计模式就是在面向对象软件设计时对特定场景下特定以下是FactoryMethod基本的代码片断:问题的公认优秀的设计方案。面向对象思想
4、出现这么publicclassConnectionPool⋯⋯多年,现在已经有了好多特定的模式值得我们在设计privateConnectionnewConnection(){软件时遇到大多数问题时参考借鉴。⋯⋯2.JDBC编程的要点Connectioncon=DriverManager.getConnection利用JDBC标准提供的接口,如果要进行数据库的(URL,user,password);访问,一般的编程过程如下:⋯⋯(1)获取数据库的连接。returncon;(2)对取得的连接的进行特定SQL语句的操作。}计算机教育2005.
5、371人/才/培/养/与/就/业4.利用Singleton模式来控制连接池对象的惟一性装成相应的类。但我们发现,这两个类在操作时有很多我们已经有了管理数据库连接的连接池类的相同点。基本流程都是先获取数据库连接,然后生成ConnectionPool,但要注意一点:连接池对象在系统运Statement对象,再在这个Statement对象上调用方法执行时应该是惟一的。原因很简单,如果不惟一的话,对行SQL语句,这些步骤可以提取成一个方法execute()到不同的数据库访问产生不同的连接池对象,那么连接一个父类里面,可称为DbBean类。这个父
6、类只用公布池对象的作用就根本没有起。当然,也可以在程序中出一个方法让子类去重载,这种方法往往被称为勾子只创建一个连接池对象,但这不能保证别的程序员也方法,在这里不妨称为executeSql()。有了这个父类,对能做到这一点,这时,应该采用singleton模式,通过于两种不同的操作类型,会产生两个子类,不妨称为getInstance()方法获取惟一的连接池对象。SelectBean与UpdateBean。对于不同的子类,只是重载publicclassConnectionPool⋯⋯父类中的勾子方法executeSql(),执行不同的数据
7、库访publicclassConnectionPool{问,不用去关心准备这个访问所要做的事。privatestaticConnectionPoolinstance=null;6.引入Adapter模式来解决已有接口的不一致publicstaticsynchronizedConnectionPool在JDBC提供的接口里面,对数据库访问的方法分getInstance(){别为executeQuery()与executeUpdate(),在以上引入if(instance==null)TemplateMethod模式后,得在子类中去重载父类
8、中instance=newConnectionPool();公布出来的勾子方法executeSql(),这个勾子方法的名returninstance;字是惟一的,这样,为了让我们的特定数据库访问能}很好地衔
此文档下载收益归作者所有