Java访问SQL数据库的优化探讨

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:xh287315717
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:访问数据库是Java应用的重要环节。通过选择合适的驱动程序、采用连接池技术、优化SQL语句以及优化数据库可以提高Java访问SQL数据库的效率。
  关键词:Java;SQL数据库;优化;JDBC
  中图分类号:TP311.13 文献标识码:A 文章编号:1007-9599 (2012) 21-0000-02
  随着Java技术的不断成熟,Java在电子平台中的应用越来越广泛。而数据库存储着大量数据,访问数据库的效率非常重要。任何语言想要访问数据库,必须与数据库建立连接。Java语言通过JDBC访问数据库,JDBC是用于执行SQL语句的Java Api。JDBC可以与数据库建立连接,发送SQL语句,还可以处理数据库返回的结果。
  1 选择合适的驱动程序
  1.1 JDBC-ODBC网桥驱动程序
  JDBC-ODBC网桥驱动程序[1]的特点是将JDBC操作转换成ODBC操作。首先在本地计算机上安装ODBC驱动程序,然后通过JDBC-ODBC网桥,将Java程序中的JDBC访问指令转换为ODBC访问指令,接着通过ODBC驱动程序完成数据库的访问。
  1.2 JDBC-Native驱动程序
  JDBC-Native驱动程序的特点是将JDBC程序编程接口转换为本地的程序编程接口。JDBC-Native驱动程序也需要在本地计算上安装好特定的驱动程序。
  1.3 纯Java的JDBC中间件驱动程序
  纯Java的JDBC中间件驱动程序不需要在本地计算机上安装特定的驱动程序,但是需要安装数据库管理系统服务器的中间件,服务器的中间件可以支持多种数据库的访问,还可以负责数据库的转换。首先将JDBC访问转换成网络标准协议,接着由服务器端的中间件转换为专用的访问指令。
  1.4 纯Java的JDBC驱动程序
  纯Java的JDBC中间件驱动程序也不需要在本地计算机上安装特定的驱动程序,由JDBC驱动完成所有的数据库操作。由数据库厂商提供这一类的驱动程序,将JDBC调用转换为数据专用的访问指令,效率非常高。
  JDBC-ODBC网桥驱动程序要求客户端必须安装ODBC驱动程序,不适合基于网络的应用,而且执行效率低,也不适合大数据量存取的应用;JDBC-Native驱动程序结合其他三种驱动程序的特点,可以利用本地代码库加速数据库的访问,而且支持多数据库,与数据库紧密结合,扩展数据库的性能;纯Java的JDBC驱动程序支持多数据库,具有灵活的特点;纯Java的JDBC驱动程序和本机数据库紧密结合,是可靠有效的驱动程序,也是企业的首选软件。根据不同情况,采用不同的驱动程序,可以提高访问数据库的效率。
  2 采用连接池技术
  Java访问数据库的时候,需要同时访问多个不同的数据库。数据库连接是有限资源,一旦某一程序耗尽数据库资源,那么就会影响其他的应用程序。采用连接池技术,使用同一个连接池,访问不同的数据库,可以有效地节约资源,提高数据库的访问效率。
  连接池[2]的核心是连接复用。建立一个数据库连接池,负责数据库连接的分配和管理,允许不同的应用程序共享现有的数据库连接,避免数据库的频繁建立和关闭,使连接池中的连接得到高校的复用。更重要的是通过监视数据库连接的使用情况,可以及时对系统的开发和性能进行调整。
  通过使用空闲池可以实现对连接的管理,也就是按照时间将那些已经创建却没有分配的连接存放到空闲池[3]中。当用户请求一个连接的时候,系统首先检查空闲池内的空闲连接。如果空闲池内存在空闲连接,那么就把创建时间最长的那个连接分配出去;如果空闲池内没有空闲连接,那么就检查当前的连接池是否允许连接,如果允许,就等待一定时间,如果不允许,就重新建立一个连接,如果等待的时间内连接池内有连接释放出来,那么就将其分配给用户,如果等待时间超过预定时间,还没有连接释放出来,那么就重新返回。
  在多层结构的应用程序中,使用连接池技术,可以提高系统的性能。
  3 优化SQL数据库
  3.1 使用数据库存储过程
  数据库的存储过程[4]主要是为了完成一组具有特定功能的SQL语句集[5],经过编译之后就可以存储到数据库中。当创建存储过程之后,就可以多次调用,比SQL语句的执行快很多。
  3.2 创建PrepareStatemennt对象
  首先,我们来看两个程序片段:
  Code Fragment 1:
  String updateString=“UPDATE chengji SET grade=25”+“WHERE Sno LIKE ‘9500%’”;
  stmt.exeeuteUpdate(updateString);
  Code Fragment 2:
  PreparedStatement updateSales=con.prepareStatement(“UPDATE Sno SET grade=? WHERE grade LIKE?”);
  updateSales.setInt(1,25);
  updateSales.setStfing(2,“9500%”);
  updateSales.executeupdateO;
  程序片段一是普通的Statement对象,而程序片段二则是PrepareStatemennt对象,PrepareStatemennt对象包含了SQL语句,一般情况下,这个SQL语句已经被预编译过,当执行的时候,只需要运行SQL语句就可以了。如果多次执行Statement对象,就会降低PrepareStatemennt对象的运行时间,加快数据库的访问速度,此时只需要改变其中的变量值,就可以执行SQL语句了。是否选择PrepareStatemennt对象,在于SQL语句是否已经多次执行,而且两次执行的差别只是变量的不同。如果SQL语句执行了多次,那么就可以体现PrepareStatemennt对象预编译的优越性,如果SQL语句只执行了一次,那么PrepareStatemennt对象就和Statemennt对象没有任何差别。因此,多次执行Statemennt对象,可以创建为PrepareStatemennt对象,提高效率。
  3.3 仅选取所需要的行、列
  当执行SQL查询[6]的时候,会获得符合条件的所有记录。此时,可以通过tatement的setFetchSize()方法设置数据缓存。以增量的方式获取记录集,从而获得自己所需要的记录。当发送SQL查询语句的时候,不需要选取数据中的全部列,选取单独的列就可以减少服务器发送和取出的数据量,提高系统的性能。
  4 结束语
  优化Java访问SQL数据库的效率,应该从优化数据库的连接开始,选择合适的驱动程序,采用连接池技术,并且优化数据库。在实际应用中,根据实际开发情况,可以研制出更好的优化策略,更好地提高数据库访问效率。另外,提高数据访问效率还可以改善系统硬件设备,采用硬件软件结合的方式,提高Java访问数据库的效率。
  参考文献
  [1]王长杰,王卫华.Java访问数据库的效率优化研究[J].科技信息,2010(34):246-247.
  [2]陈舒骅,刘俊.基于JDBC的数据库访问优化策略研究[J].电脑编程技巧与维护,2011(10):102-103.
  [3]车玉生,鞠红.浅谈JDBC连接数据库经验技巧[J].中国科技财富,2011(6):79-80.
  [4]岐世峰.JDBC访问数据库的优化建议[J].现代计算机(专业版),2009(11):121-122.
  [5]张达敏,陈言君.优化J2EE代码编写提高软件性能[J],贵州科学,2009,27(2):89-90.
  [6]张洋.JDBC数据库访问技术[J].电脑编程技巧与维护,2009(22):57-58.
  [作者简介]衣李娜(1974.2-),女,汉族,辽宁省本溪市,职称:讲师,学位:硕士,研究方向为程序设计。
其他文献
莴苣(Lactuca sativa Linn.)为菊科莴苣属,是一种传统的蔬菜品种,其营养丰富,深受大众喜爱。苔干莴苣为莴苣品种中的一种,其茎中含有丰富的碳水化合物,为了使这一资源得到进
迄今为止,已报道了大量金属的欠电位沉积过程及影响金属沉积的因素(如温度、吸附离子等)。由于,烷基硫醇自组装类吸附分子能够改良金属表面性质(抗腐蚀性、润湿性、耐磨性等)
尽管目前的网络应用都在宽带环境,但对于一些专业的应用环境,窄带的应用不可避免。本文重点分析了窄带环境下得压缩传输技术,和技术架构。
量词是汉藏语系中独具特色的词类之一,不仅种类繁多,用法更是繁复。有关量词的研究早在魏晋南北朝就已经开始,但在对外汉语方面的起步却相当晚。90年代后期,有一部分学者开始通过研究汉语量词,为对外汉语方面的量词教学提供合理化的教学建议和对策,希望借此帮助学生冲破学习汉语量词的难关。一直到了 21世纪,量词在对外汉语教学方面的成果才逐渐丰硕。可是,据笔者搜索的文献显示,针对某一区域母语非汉语的华裔学生习得
摘要:软件体系结构是软件系统的高层抽象,对提高软件系统质量、支持软件开发、复用和控制软件复杂性都有着很重要的作用。但是决策类的软件就是要以决策主题为中心,运用相关的规则的主题和知识库来为决策软件提供一些知识服务和决策支持。我们应该从决策类软件中的复杂度、生成方案类型多、概率性高、软件运算模型的数量大的特点来进行分析,研究软件体系中应该注意的问题和策略,并对基于决策的软件体系结构设计做出较好的方法。
媒介融合的背景下,对于广播电视新闻的发展来说既是一个机遇,也是一场挑战,广播电视工作单位应该抓住媒介融合提供的信息技术的机遇,提升采编新闻的实效性,创新电视新闻播出
本文以速冻鱼丸为研究对象,探究液氮沉浸式冻结方式应用于鱼丸冻结时对鱼丸的品质影响及控制。针对液氮冻结鱼丸过程中鱼丸易冻裂的问题,探究不同可食性夹心材料对鱼丸冻裂率
中药作为连接祖国医学和临床实践的桥梁,其药效物质的获取,不可避免地需要“去伪存真,去粗取精”,因而“分离”是中医药领域的关键技术。而采用怎样的工业化技术,如何合理评
【正】甲状腺大部切除术是治疗原发性或继发性甲状腺功能亢进最有效的方法,治愈率达100%。现将我院近年行甲状腺大部切除病人术后护理体会总结如下:
静脉穿刺是临床治疗常用的基础护理操作技术,建立良好的静脉通路,才能达到快捷治愈疾病的目的,是病人衡量护理技术操作水平的重要依据,它直接影响病人的安全和满意度。 Veno