本文主要为广大网友提供“ 提高Java访问数据库效率的探讨 ”,希望对需要 提高Java访问数据库效率的探讨 网友有所帮助,学习一下!
1.Java数据库访问机制JDBC属于Java API的一类形式,其作用在于执行SQL语句,可以对许多普遍数据库创造无缝链接的技术。通常JDBC具备驱动程序层、应用程序层等2层接口,前者用于处理与具体驱动程序版本的所有通信,后者用API经过SQL调用数据库以获得数据。驱动程序层的驱动程序有四大构成:JDBC ODBC bridgedriver,Native API Partly Java driver,Net ProtocolAll Java driver,Native protocolAll Java driver。应用程序层中含4种重要的界面:Java.sql.DriverManager 处理驱动程序的装载和建立新的数据库链接。Java.sql.Connection 完成对某一指定数据库的链接。Java.sql.Statement 管理在指定数据库链接上的SQL语句的执行。Java.sql.ResultSet 从数据库返回的结果集。
2.改善数据库访问效率的有效策略2.1数据库链接池技术如果数据库应用系统不是很复杂,则应对被访问的数据库进行相应的处理。一般采用的方法为建立链接,结束操作后再将其关闭。需要强调的是创建链接的难度较大,这是因为链接过程中会受到各种通讯因素的干扰。此外,还应经过用户验证或链接等操作才能完成控制。技术人员可以创建共享式链接,以缩短连接运用的时间。链接池技术主要是对应用程序启动加以调控,可通过创建数据库实现链接控制,最终把每个链接组合起来就是一个链接池。具体操作流程为:第一步获得对链接池或管理多个链接池的一个对象的引用,接着从链接池中得到一个链接。链接运用结束后无需关闭,只需将其还原到连接池里。常规的链接池对象应包括以下几个成员:int MinConnections(最小链接数);int MaxConnections(最大链接数);Connection()connections(保持链接,不一定是数组,可以是Stack,Vector等);Init()(初始化链接池);Public ConnectiongetConnection()(获得一个链接);Public void returnConnection(Connection conn)(归还一个链接)。
2.2运用有效的驱动程序对JDBC驱动程序的运用合理选择是很关键的,其能够维持访问数据库的使用效率,避免程控指令发生错误。JDBC-ODBC bridge driver 的主要优势在于大部分关系数据库系统都支持ODBC驱动程序,所有ODBC的数据库不需要特殊处理则可以与JDBC协同工作。而因这种程序要先将JDBC操作翻译成对应的ODBC调用,然后把这些调用传递给ODBC驱动程序,最后才执行数据库的相关操作,整个操作流程相对复杂,影响了程控的使用性能。Native-API Partly Java-driver 此类驱动程序是把客户机API上的JDBC调用转换为Oracle,Sybase,Informix,DB2或其它DBMS的调用。其主要采取多层结构形式,在上层用Java实现以帮助实现跨平台应用的要求,让整个程序指令的控制速度不断提升。Net-Protocol All-Java driver。此类驱动程序无需运用客户端的数据库驱动,仅仅是借助于网络服务器中间层来访问一个数据库。其优势在于可以满足多项数据库的使用需要,在JDBC模式是运用范围最广的一种,特别是在Internet/Intranet开发中的运用最多。Native-protocol All-Java driver 此类驱动程序允许客户端直接访问数据库系统。该程序的优点可以和数据库本身结合紧密,企业引进这类程控的效率较高,在驱动操作上无需消耗太多的时间。在选择程序指令上必须要根据企业的实际运用而定,这些是提高数据库性能的基础。
2.3运用JavaBean技术封装对数据库的操作尽管Java技术的运用可以发挥多个方面的优势,但具体使用期间会面临各种问题,这些都是企业需要积极注意的问题。当程序访问数据库存在异常后,若对整个数据库需要调整变动,则应该对每个环节都作出相应的调整,如:修改密码、程序编写,这就需要将链接数据库的操作布置于某个程序里,在需要数据库链接时去调用这个ā便能有效地处理问题。JavaBean技术是由各种软件构成的组合体,其能够实现重复使用的需要,同时结合JavaBean封装事务逻辑,对业务逻辑和客户端操作来完成控制。JavaBean技术的工作原理是把数据库的基本操作逻辑封装在JavaBean包中,通过调用JavaBean来达到数据库的链接要求。先是把Java编写的数据库链接和对数据库基本操作的程序用javac编译成.class提高Java访问数据库效率的探讨