开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如何建立JSP操作用以提高数据库访问效率

简介:
+关注继续查看
从服务器端促进程序快速开发的java Server Pages (jsp)决定它成为一种广为流行的工具。虽然呆板的一面仍然存在,然而无论它包含多少缺点,JSP能够为Web程序设计者提供很多东西,尤其是与数据库的输入和输出操作与数据的处理。 




通过JSP来进行数据库访问不需要太多的引导。问题是如何使开发者能够接受Web程序的数据库访问比传统的本地OLAP系统的数据库访问更加具有吸引力,并且使他们认识到,整洁和简要的数据访问方法才是关键的。在这一点上,JSP可以很好地解决。 




你能够做哪些? 


如果你正在编写高数据量、数据密度大的Web程序时,你的数据库访问应该具备哪一方面的要求?如果你正在使用JSP,那么你必须处理大量的服务器端的数据。程序也许需要大量的数据,或者很多用户,或者这二者的结合。你所考虑的可能范围还会包括:性能的优化,可检测性,每一用户的多个查询的影响,查询的复杂性,以及当单一的会话处理大量数据时,高等级的类型转换。 




这其中包含大规模的处理。但是,JSP能够帮助你很好地处理,因为它能够与Java Database Connectivity API (JDBC)很好的兼容。你可以将JDBC包含在JSP代码中,并且JDBC能够传递声明执行类似数据库的命令,只要你能够正确地使用JDBC驱动程序。 




开始 


这里是一个通常的、抽象的JSP程序执行的体系。首选的JSP设计模式为模型-视图-控制器(MVCModel-View-Controller),即传统三层体系的一种变异,以更好的适合于服务器程序。在JSP的MVC设计模式中,Model指的是程序的逻辑与数据,View为查看,以及Controller为请求处理。 




当你设计一个JSP程序时,在客户端与服务器交互之间建立第一步骤的页面,这是最好的一个过程。例如,在一个典型程序中,在数据交换中的每一个特定步骤都会有页面:一个数据入口页面,一个验证请求页面,一个数据库响应页面,以及这些页面的子页面(一个更改记录的页面,一个删除记录的页面,等等)。 




你可以将JDBC嵌入到每一页面中,以完成被请求的数据库操作。然而,这一操作也会冒很大的风险,因为由于混合了JSP和JDBC而混合了整个程序──JDBC是基于SQL。这也就是SQL被封装在JDBC,而JDBC也被封装在JSP──这也足够让你晕头转向的。如果你选择这一方法,你将会获得你想要的功能,但一定要保证你的程序逻辑与数据库访问代码的关系非常清晰,这一点格外小心。 




嵌入式JDBC 


JDBC API不会直接地与数据库进行交流。其中的驱动程序完成的实际的连接,你可以在卖方的Web站点上下载这些驱动程序。除此之外,还有四种JDBC的驱动程序类型,如果你决定使用JDBC,你需要正确地选择最为适合你需要的那种类型。你将使用一个DriverManager类来处理基于驱动程序的连接。 




你可以使用一个名为getConnection的DriverManager方法来建立你的数据库连接。你还可以使用它的URL参数来识别数据库: 




public static Connection getConnection(jdbc:odbc:nameOfDatabase) 




现在,告诉DriverManager有关驱动程序的信息(应该在你的classpath中): 




Class.forName(“sun.jdbc.odbc.nameOfJDBCDriver”); 






你已经将数据库连接到JSP程序,但你仍然不能够执行一个数据库命令。解决这一点,你可以在JSP代码中生成声明以建立数据库命令,如下所示: 




public Statement createStatement(intresultSetType, intresultSetConcurrency) 








其中的参数能够让你控制从数据库查询得到的结果。当使用第一个参数时,可以在程序中看到结果;当使用第二个参数时,你可以通过查询来更新数值(这是一个难以相信的功能,在以后的文章中值得进一步讨论)。 




表A 


http://builder.com.com/5100-6387-5172666.html?tag=sc#Listing 


AListing A显示列举了下两种方法的复杂性。 




声明(Statement)就是SQL命令。PReparedStatement就是SQL的声明,你可以通过其中的参数来控制程序的过程。CallableStatement是用于访问SQL存储程序。你是否开始意识到,如果你没有看到这些说明,你是否觉得这些声明很复杂?请注意到,通过调用rollback方法,你可以撤除交易过程。 




如果你想完全使用这些数据库访问的方法,你唯一遗漏的还有: 




ResultSetexecuteQuery(string sqlQuery) 






(你可以使用executeQuery来完成以上过程。你也可以使用一个executeUpdate来完成更新、插入和删除)。你以上的声明接口使你可以使用一些方法来执行SQL声明。ResultSet所做的就是访问从查询得到的数据,所以你可以在JSP程序中使用这些数据。 




通过将JSP程序分解成单一的、功能明显的页面,以及在任何给定页面中执行一个单一的数据库操作,可以很大程度地简化你的数据库操作,以及建立可以用于以后程序开发的页面,即使你将SQL嵌入到这些页面的JDBC中。 




但是你还可以做更多的事情,以使得你的JSP数据库访问更加整洁和容易维护。在JSP代码中嵌入JDBC,以及通过发送SQL命令与数据库通讯,这些过程都很好。但是,它要求在不能增加代码复杂程度下,建立通过接口的SQL命令的程序。当你的SQL处理需要提高灵活性的时候,你可以进一步地分离你的数据库接口代码,以清洁你的JSP程序。





     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360622,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
企业为什么要建立自己的数据库?
大数据营销是衍生于互联网行业,又作用于互联网行业。依托多个平台的大数据技术的采集,以及大数据技术的分析与预测能力,能够应用于互联网广告行业的营销方式,就是能够使广告更加精准有效,给品牌企业带来更高的投资回报。
1729 0
阿里云上企业数据安全工作指南
概述: 数据是企业的核心资产,如何保护企业的云上数据,是每个企业管理者都应当重视的课题。在云平台提供更为安全便捷的数据保护能力的同时,阿里云根据自身多年的经验积累,结合大量云上客户的最佳实践,提供了一套完整的数据安全解决方案,帮助企业提升云上数据风险防御能力,实现企业核心及敏感数据安全可控。   数据安全相关法律法规和参考标准: 国内: 《网络安全法》:主要从“个人
1044 0
数字图说个人信息数据泄露
本文讲的是数字图说个人信息数据泄露,所有经常关注新闻报道的人恐怕都可能已经意识到,近年来数据泄露和黑客攻击一直呈上升态势。
1434 0
kettle与各数据库建立链接的链接字符串
kettle与各数据库建立链接的链接字符串 Sybase: TO_DB_URL = jdbc:sybase:Tds:192.168.168.163:5000/testdb?charset=eucgb&jconnect_version=6 TO_DB_DRIVER = com.sybase.jdbc3.jdbc.SybDataSource #com.sybase.jdbc3.jdbc.SybDriver驱动下表输入组件不支持别名。
993 0
中型企业数据库产品选型
   目前的数据库市场,主要是Oracle、Mysql、IBM的DB2和微软的sqlserver,其中mysql是免费的,其他三款都是比较优秀的商业软件。
907 0
文章
问答
文章排行榜
最热
最新
相关课程
更多
相关电子书
更多
动态、高效,蚂蚁动态卡片的内核逻辑
立即下载
面向失败设计
立即下载
低代码开发师(初级)实战教程
立即下载