加快JDBC设计中JSP访问数据库

以前,我们已经提到,JSP程序都是模块,并且具有强大的表达-请求(presentation-request)功能。建立一个完美的数据库访问是一个具有挑战的过程,而JDBC接口能够很好地完成这一过程。然而,嵌入于JSP代码中的JDBC代码,与SQL命令嵌入在JDBC一样,可以充分利用JSP的功能,为客户端建立一个整洁而简便的API。为了达到这一目的,我们可以考虑到使用JSP操作来建立数据库接口组件。

完美的JSP设计模式是Model-View-Controller (MVC)。传统三层体系为:Model为程序逻辑和数据;View为查看;以及Controller为请求处理。遵循这一模型,一个JSP程序包含客户端-服务器“对话框”的每一“行”的页面。在一个典型的程序中,你可以看到一个查询页面,一个验证页面,一个数据库插入页面,一个数据库更新页面,等等。

在上一篇的文章中,我们讨论到如何在每一页面中嵌入JDBC,以保证程序的结构更加合理。然而,建立可执行的SQL命令,正如变量通过JDBC命令而传递一样,也有可能会增加程序的复杂性。

JDBC设计的JSP操作
JSP数据库操作的另一方法是,在不使用JDBC的情况下为数据库建立一些操作的集合。使用这种方法,你可以得到两种好处:第一,你可以消除使用JDBC的必要,这就使得很多工作得以简化;第二,你的设计和代码的组织更加合理(比如可读性,灵活性,以及可维护性)。

你仍然需要一些驱动程序,但你首先简化以上的操作。JSP程序中的操作都是一些逻辑块,通常被其它的JSP程序开发者编写和利用,但你可以把它们当成子程序来使用。使用JSP操作的意义是标准化某些功能,以及最大程度地减少嵌入在JSP的Java代码数量。

JSP提供了一套标准扩展的类。通过这些类,你可以通过一个标签管理器器(tag handler)定义一个操作。这里有两个JSP定义的Java接口:Tag接口和BodyTag接口,分别是由TagSupport类和BodyTagSupport类执行。

你可以建立通用JSP用途的一个标签库,并且你也可以执行标签管理器(tag handler)以扩展类的支持。以下是实现这些过程的步骤。

首先,执行一个标签管理器的类:

packagecom.myactions;

(import statements go here)

public class MyActionTag extends TagSupport {
       ...
       }

接着,编译这段代码,并将类文件放置在程序的类库中。然后,你将需要一个Tag Library Descriptor (TLD)文件,这是一个XML文件,以匹配你的操作名称和相应的标签管理器的类。

<tag>
       <name>MyAction</name>
       <tagclass>com.myactions.MyActionTag</tagclass>
       <bodycontent> (whatever)  </bodycontent>
       <attribute>myData</attribute>
</tag>

</tag>

相关的Trialware

  • DbUtils (Apache Software Foundation)
  • IBM Informix JDBC Driver (IBM)
  • MySQL Connector/J 3.0 (MySQL AB)
  • SQL4X Manager J 2.2 (MacosGuru)
  • Informix Downloads (IBM Red Brick Warehouse 32bit) (Solaris) (IBM)
  • Informix Downloads (IBM Red Brick Warehouse 64bit) (HPUX) (IBM)
     更多Trialware

  • 假设你已经建立一个名为MyAction的操作,这是一个与com.myactions.MyActionTag类匹配的TLD。TLD文件必须位于程序的TLDs路径。

    当你从一个JSP页调用操作时,TLD告诉JSP正确的类以使用操作。这就带来极大的方便,而且只需要少量的代码。

    但是,从何引入SQL?首先,你需要建立具有连接功能的数据库访问。你可以使用javax接口来完成,而javax可见于JDBC 2.0 Optional工具箱。JDBC 2.0的javax.sql.DataSource类提供了你所需要的连接。

    此时,SQL位于什么地方?它在bean中。你可以使用JDBCcreateStatement和PreparedStatement在bean中建立一个方法。将这一方法成为一个公共的Vector,并正确地将你的SQL声明传递到这一方法。

    总结
    你的数据库bean执行一个嵌入在操作体的SQL语句,你可以传递一个语句给SQL语句,或者使用它来执行一个预先的操作。可以通过标签管理器来执行你的操作。由于JDBC被嵌入于库代码中,你将不能在JSP程序中明确地使用它。

    初次使用这种方法会觉得它比JDBC中的嵌入SQL,以及JSP中的嵌入JDBC更加复杂,但是,你建立SQL操作并将它们存放在一个TLD,你只需做一次,在所有的JSP程序中就可以访问这些操作。这就是这种方法的优点。

    下一次,我们将会讲述到JSP页和会话(sessions)之间的数据传递。

    (0)

    相关推荐

    • JSP基于JDBC的数据库连接类实例

      本文实例讲述了JSP基于JDBC的数据库连接类.分享给大家供大家参考,具体如下: /* * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package com.yanek.test; import java.sql.Connection; import java.sql.DriverManager

    • JSP中使用JDBC访问SQL Server 2008数据库示例

      由JDBC驱动直接访问数据库 优点:100% Java,快又可跨平台 缺点:访问不同的数据库需要下载专用的JDBC驱动 (1)下载对应数据库版本的jdbc驱动并安装,注意安装后的得到的三个文件msbase.jar,mssqlserver.jar,msutil.jar,将其拷贝到jsp项目的WEB-INF/lib下面,也拷贝到Tomcat安装目录的lib下面,没有具体测试,应该和配置文件有关系. (2)数据源,不需要 (3)配置文件,不需要 (4)写JSP文件测试 <%@ page content

    • Java使用JDBC连接数据库的实现方法

      本文实例讲述了Java使用JDBC连接数据库的实现方法,是Java数据库程序设计里非常实用的重要技巧.分享给大家供大家参考.具体如下: JDBC(Java Data Base Connectivity)数据库连接,通常我们在编写web应用或java应用程序要连接数据库时就要使用JDBC.使用JDBC连接数据库一般步骤有: 1.加载驱动程序 Class.forName(driver); 2.创建连接对象 Connection con = DriverManager.getConnection(ur

    • jdbc操作mysql数据库实例

      本文实例讲述了jdbc操作mysql数据库的方法.分享给大家供大家参考.具体如下: import java.sql.*; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; class conn{ String url="jdbc:mysql://127.0.0.1/nariData"; final Strin

    • JDBC操作数据库的增加、删除、更新、查找实例分析

      本文实例讲述了JDBC操作数据库的增加.删除.更新.查找方法.分享给大家供大家参考,具体如下: package cn.com.JDBC; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class CRUD { public static void main(String[] args) throws SQL

    • JDBC链接数据库的几个步骤

      此文列出了JDBC链接数据库的4个步骤,供大家参考下: JDBC:JAVA访问数据库的解决方案. 几个步骤:1.加载驱动类; 2.与数据库建立连接:            3.执行SQL语句    4.处理结果集    5.关闭连接 1. 第一步:加载驱动类: 需要注意:不同的数据库,参照的字符串不同,ORACLE的连接为:Class.forName("oracle.jdbc.driver.OracleDriver"); 这一步执行后,程序可能会抛出: ClassNotFoundExc

    • JDBC对MySQL数据库布尔字段的操作方法

      本文实例讲述了JDBC对MySQL数据库布尔字段的操作方法.分享给大家供大家参考.具体分析如下: 在Mysql数据库如果要使用布尔字段,而应该设置为BIT(1)类型 此类型在Mysql中不能通过MySQLQueryBrowser下方的Edit与Apply Changed去编辑 只能通过语句修改,比如update A set enabled=true where id=1 把A表的id为1的这一行为BIT(1)类型的enabled字段设置为真 在JAVA中,使用JDBC操作这个字段的代码如下: c

    • jsp+jdbc实现连接数据库的方法

      本文实例讲述了jsp+jdbc实现连接数据库的方法.分享给大家供大家参考.具体如下: 初次尝试JSP+jdbc,按照书上的例子折腾了半天,就是连不上数据库.于是在网上找材料,终于发现,老的jar包与新版数据库直接不兼容.于是下了新的数据库jdbc包,试了一下,果然搞定.这里,把这个程序跟大家共享下,程序实现了网页登录界面上提取用户名与密码,然后与数据库中用户名密码对应,从而决定程序是否通过登录. inc.jsp文件: <%@ page import="java.sql.Connection

    • 加快JDBC设计中JSP访问数据库

      以前,我们已经提到,JSP程序都是模块,并且具有强大的表达-请求(presentation-request)功能.建立一个完美的数据库访问是一个具有挑战的过程,而JDBC接口能够很好地完成这一过程.然而,嵌入于JSP代码中的JDBC代码,与SQL命令嵌入在JDBC一样,可以充分利用JSP的功能,为客户端建立一个整洁而简便的API.为了达到这一目的,我们可以考虑到使用JSP操作来建立数据库接口组件. 完美的JSP设计模式是Model-View-Controller (MVC).传统三层体系为:Mo

    • Java Web项目中连接Access数据库的配置方法

      老师决定期末考试采用access数据库实现增删改查,我认为现在的我已经没有问题了,但是以前都是在JSP页面中连接access数据库,无论是以下的那种方式都进行了连接的练习,但是现在我想让我的项目中的访问access数据库的java代码,封装到DAO中,在DAO中连接数据库,没有和Servlet API有任何的关系.对于大多数人都会优先选择使用ODBC数据源的方式或者是使用绝对路径的方式连接access数据库,但是我个人认为,这样做不太好,如果采用这样的方式,项目做好后,放到他人的服务器上是无法运

    • 在JSP中访问数据库大全

      现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发.在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 va

    • Java实现JSP在Servelt中连接Oracle数据库的方法

      本文实例讲述了Java实现JSP使用Servelt连接Oracle数据库的方法.为了实现在Servlet 中连接数据库,必须编写Servlet 的类程序.将Servlet 类程序放到WEB 服务器的servlets 或者classes 目录下面,为调用Servlet,需要创建发送Servlet 请求的HTML 文档.本例通过(Driver)Class.forName(driverName).newInstance()方法来实现加载驱动程序,建立与数据库连接. 具体程序代码为: 1.Databas

    • Spring boot中使用Spring-data-jpa方便快捷的访问数据库(推荐)

      什么是JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据.他的出现主要是为了简化现有的持久化开发工作和整合ORM技术 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作.它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA

    • docker中使用mysql数据库详解(在局域网访问)

      前言 开发过程中经常需要安装.调试mysql数据库,还需要在各种操作系上安装包依赖,实在是繁琐,因此就研究了一下如何在docker上运行一个mysql镜像,省却了我安装.找依赖的问题. 注:本文所有内容均在CentOS Linux release 7.2.1511 (Core) 上测试完成 假设,你已经安装好docker.如果没有安装好docker可以参考centos7上安装docker 使用 docker pull mysql 获得mysql镜像,接着使用 docker images 查看镜像

    • Java项目中如何访问WEB-INF下jsp页面

      Java小项目中WEB-INF下jsp页面如何访问 一:一般为啥要把jsp页面放在WEB-INF呐? 这样主要是为了网站的安全的角度来说的,WEB-INF是安全目录Tomcat 默认的访问路径是WebRoot下的index.jsp,放在WEB-INF下的页面一般不配置是无法访问的. 你的站点肯定有些页面是需要经过登录验证或其他验证后才能访问的啊,这些页面就放在web-inf里. 如果是能不经过验证就访问的页面,比如主页.登录页.欢迎页这种,就不要放在web-inf里  二: 下面来看如何访问We

    • docker中使用mysql数据库实现局域网访问

      1.获取mysql镜像 docker pull mysql:5.6 注意:此处之所以获取mysql5.6是因为mysql5.7在centos7中启动可能会报错 2.查看镜像列表 docker images 3.启动mysql镜像 docker run -itd -P mysql:5.6 bash 其中 docker run是启动容器的命令:i是交互式操作,t是一个终端,d指的是在后台运行, -P指在本地生成一个随机端口,用来映射mysql的3306端口,mysql指运行mysql镜像,bash指

    • Spring Boot集成MyBatis访问数据库的方法

      基于spring boot开发的微服务应用,与MyBatis如何集成? 集成方法 可行的方法有: 1.基于XML或者Java Config,构建必需的对象,配置MyBatis. 2.使用MyBatis官方提供的组件,实现MyBatis的集成. 方法一 建议参考如下文章,完成集成的验证. MyBatis学习 之 一.MyBatis简介与配置MyBatis+Spring+MySql 基于Spring + Spring MVC + Mybatis 高性能web构建 spring与mybatis三种整合

    • Java连接 JDBC基础知识(操作数据库:增删改查)

      一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库.比如建立数据库连接.执行SQL语句进行数据的存取操作. JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据库使用: 连接到数据库 创

    随机推荐