a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 83|回复: 0

[基础知识] JAVA基础:加快JDBC中JSP数据库访问速度的技巧

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
JSP轨范都是模块,而且具有强年夜的表达-请求(divsentation-request)功能。
7 S1 a9 f$ O1 m# m2 ]) j8 E! [  成立一个完美的数据库访谒是一个具有挑战的过程,而JDBC接口能够很好地完成这一过程。 - y3 g6 K: R, |
  然而,嵌入于JSP代码中的JDBC代码,与SQL呼吁嵌入在JDBC一样,可以充实操作JSP的功能,为客户端成立一个整洁而精练的API。为了达到这一目的,我们可以考虑到使用JSP操作来成立数据库接口组件。
9 ^3 A: c- C$ m, E0 e! R! K  完美的JSP设计模式是Model-View-Controller (MVC)。传统三层系统为:Model为轨范逻辑和数据;View为查看;以及Controller为请求措置。遵循这一模子,一个JSP轨范包含客户端-处事器“对话框”的每一“行”的页面。在一个典型的轨范中,你可以看到一个发芽页面,一个验证页面,一个数据库插入页面,一个数据库更新页面,等等。   y# ~: l$ u2 n% m, s5 C
  JDBC设计的JSP操作 ' J& h  k2 O* a
  JSP数据库操作的另一体例是,在不使用JDBC的情形下为数据库成立一些操作的集结。使用这种体例,你可以获得两种益处: " G. N" t- T) D/ v) M  c1 l+ G- N
  第一,你可以消弭使用JDBC的需要,这就使得良多工作得以简化;
, D* v$ ]/ S! g: x" K  第二,你的设计和代码的组织加倍合理(好比可读性,矫捷性,以及可维护性)。 ) w5 K( I& Q$ Z3 B- M
  你仍然需要一些驱动轨范,但你首先简化以上的操作。JSP轨范中的操作都是一些逻辑块,凡是被其它的JSP轨范开发者编写和操作,但你可以把它们当成子轨范来使用。使用JSP操作的意义是尺度化某些功能,以及最年夜水平地削减嵌入在JSP的Java代码数目。
+ s1 d6 {* e- J( w- S2 p  JSP供给了一套尺度扩展的类。经由过程这些类,你可以经由过程一个标签打点器器(tag handler)界说一个操作。这里有两个JSP界说的Java接口:Tag接口和BodyTag接口,分袂是由TagSupport类和BodyTagSupport类执行。 3 r, h: P# j7 ^) z. H9 u4 m
  你可以成立通用JSP用途的一个标签库,而且你也可以执行标签打点器(tag handler)以扩展类的撑持。以下是实现这些过程的轨范。 . f7 [! o9 z+ a8 Q" v
  首先,执行一个标签打点器的类: ) s, s% F. q# a; p0 ~. z
 packagecom.myactions;  (importstatementsgohere)  publicclassMyActionTagextendsTagSupport{  ...  }
, ]6 t. s7 ^3 w+ h! j  接着,编译这段代码,并将类文件放置在轨范的类库中。然后,你将需要一个Tag Library Descriptor (TLD)文件,这是一个XML文件,以匹配你的操作名称和响应的标签打点器的类。 2 u& o, a; I9 ~$ R
: C0 v" d" c& O8 C
MyActioncom.myactions.MyActionTag(whatever)myData
% s( \" c: V2 [8 d" U+ B  相关的Trialware
4 [. F# b5 M8 ?  .DbUtils (Apache Software Foundation) ! V, I- T  B( m) N8 V1 e
  .IBM Informix JDBC Driver (IBM)
2 y) w  I0 ~2 F6 z  .MySQL Connector/J 3.0 (MySQL AB)   m: ~: z% g1 g7 p  [$ I
  .SQL4X Manager J 2.2 (MacosGuru) 9 o: N' t8 h% P
  .Informix Downloads (IBM Red Brick Warehouse 32bit) (Solaris) (IBM)
/ C; g0 v4 J% k) k: q5 p; V  .Informix Downloads (IBM Red Brick Warehouse 64bit) (HPUX) (IBM) 9 k0 X$ f0 b* D: t5 K- e
  更多Trialware
/ m( B6 D7 f. F) e1 J- T# G4 R  假设你已经成立一个名为MyAction的操作,这是一个与com.myactions.MyActionTag类匹配的TLD。TLD文件必需位于轨范的TLDs路径。 ' p3 n9 M) S" P. R: h. c' h
  当你年夜一个JSP页挪用操作时,TLD告诉JSP正确的类以使用操作。这就带来极年夜的便利,而且只需要少量的代码。 ) ]/ W' l/ Y0 w, {
  可是,年夜何惹人SQL?首先,你需要成立具有毗连功能的数据库访谒。你可以使用javax接口来完成,而javax可见于JDBC 2.0 Optional工具箱。JDBC 2.0的javax.sql.DataSource类供给了你所需要的毗连。 4 j6 @# }+ I! |2 }8 g' o: V- ?
  此时,SQL位于什么处所?它在bean中。你可以使用JDBCcreateStatement和PreparedStatement在bean中成立一个体例。将这一体例成为一个公共的Vector,并正确地将你的SQL声明传递到这一体例。 $ z: F* B8 B( O5 t7 x
  总结
- D8 W5 x0 y$ z. I) {  你的数据库bean执行一个嵌入在操作体的SQL语句,你可以传递一个语句给SQL语句,或者使用它来执行一个预先的操作。可以经由过程标签打点器来执行你的操作。因为JDBC被嵌入于库代滤鱿脯你将不能在JSP轨范中明晰地使用它。   初度使用这种体例会感受它比JDBC中的嵌入SQL,以及JSP中的嵌入JDBC加倍复杂,可是,你成立SQL操作并将它们存放在一个TLD,你只需做一次,在所有的JSP轨范中就可以访谒这些操作。这就是这种体例的利益。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-15 17:21 , Processed in 0.232650 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表