众所周知,JDBC作为一种用于执行SQL语句的java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC虽然给予了我们设计时很多方便,但在JDBC设计中我们也会遇到JSP访问数据库缓慢的问题,那么我们如何提高JSP访问数据库的速度呢?为此本次的讲解课课家笔者主要为大家讲解如何简单快捷的提高JSP访问数据库的速度的方法和步骤。
JSP程序都是模块且具有强大的表达-请求(presentation-request)功能。如果我们要想建立一个完美的数据库访问无疑是一个具有挑战的过程,此时JDBC接口能够很好地完成这一过程,由于嵌入于JSP代码中的JDBC代码和SQL命令嵌入在JDBC一样,所以它可以充分利用JSP的功能,为客户端建立一个整洁而简便的API。通常为了达到这一目的,我们使用JSP操作来建立数据库接口组件。完美的JSP设计模式是Model-View-Controller(MVC)。我们知道传统三层体系为:
①Model为程序逻辑和数据;
②View为查看;
③Controller为请求处理。
通过遵循以上这一模型,一个JSP程序包含客户端-服务器“对话框”的每一“行”的页面。在一个典型的程序中我们可以看到一个查询页面,一个验证页面,一个数据库插入页面,一个数据库更新页面等等。
JSP数据库操作的另一方法是,在不使用JDBC的情况下为数据库建立一些操作的集合,而使用这种方法的两个优点是:
①消除使用JDBC的必要,简化工作的程序;
②设计和代码的组织更加合理(比如可读性,灵活性,以及可维护性)。
我们知道JSP程序中的操作都是一些逻辑块,而这些逻辑块通常被其它的JSP程序开发者编写和利用,事实上我们可以把它们当成子程序来使用。使用JSP操作的意义是标准化某些功能,以及最大程度地减少嵌入在JSP的Java代码数量。由于JSP提供了一套标准扩展的类,通过这些类我们可以使用一个标签管理器(tag handler)定义一个操作,在这里有两个JSP定义的Java接口:Tag接口和BodyTag接口,这两个接口分别是由Tag Support类和Body Tag Support类执行。另外我们可以建立通用JSP用途的一个标签库从而执行标签管理器(tag handler)以扩展类的支持。下面笔者给大家演示实现这些过程的步骤:
①执行一个标签管理器的类:
package com.my actions;
(import statements go here)
public class My Action Tag extends Tag Support {
…}
②编译这段代码并将类文件放置在程序的类库中,接下来我们还将需要一个Tag Library Descriptor(TLD)文件(这是一个XML文件,以匹配操作名称和相应的标签管理器的类)。
<tag>
<name>My Action</name>
<tag class>com.my actions.My Action Tag</tag class>
<body content> (whatever) </bodycontent>
<attribute>my Data</attribute>
</tag>
</tag>
假设我们已经建立一个名为My Action的操作(这是一个与com.my actions.My Action Tag类匹配的TLD,通常TLD文件必须位于程序的TLDs路径),当我们从一个JSP页调用操作时,TLD将告诉JSP正确的类以使用操作,如此一来便给我们带来极大的方便且我们编译时只需要少量的代码。关于如何引入SQL,其实很简单,我们需要做的是建立具有连接功能的数据库访问,而这我们可以使用javax接口来完成。javax可见于JDBC2.0Optional工具箱。JDBC2.0的javax.sql.DataSource类提供了我们所需要的连接。此时SQL位于bean中,我们可以使用JDBC create Statement和Prepared Statement在bean中建立一个方法,将这一方法成为一个公共的Vector,并正确地将SQL声明传递到这一方法。
总结:数据库bean执行一个嵌入在操作体的SQL语句,我们可以传递一个语句给SQL语句或者使用它来执行一个预先的操作。另外我们可以通过标签管理器来执行操作。由于JDBC被嵌入于库代码中,我们将不能在JSP程序中明确地使用它。使用这种方法会或许比JDBC中的嵌入SQL或者JSP中的嵌入JDBC更加复杂,但是建立SQL操作并将它们存放在一个TLD的这一步工作我们只需做一次就可以了,从而接下来在所有的JSP程序中我们就可以进行访问这些操作。
#p#分页标题#e#
本次的简单快捷提高JDBC设计时JSP访问数据库的速度的讲解到此就暂告一段落,如果以后有什么相关的内容继续进行补充或者修改的话,笔者会继续在此进行相关的内容的继续补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习Web开发起到一定的帮助作用!