知识大全 高性能Java设计与开发

Posted 数据库

篇首语:相逢意气为君饮,系马高楼垂柳边。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 高性能Java设计与开发相关的知识,希望对你有一定的参考价值。

高性能Java设计与开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     ——JDBC 篇(一)     驱动程序的选择    在企业级的Java应用中 访问数据库是一个必备的环节 数据库作为数据资源的集散地 往往位于企业级软件体系的后方 供前方的应用程序访问 在Java技术的体系中 应用程序是通过JDBC(Java Database Connectivity)接口来访问数据库的 JDBC支持 建立连接 SQL语句查询 处理结果 等基本功能 在应用JDBC接口访问数据库的过程中 只要根据规范来操作 这些功能的实现不会出差错 但是 有些时候进行数据查询的效率着实让开发人员懊恼不已 明明根据规范编写的程序 却得不到预期的运行效果 造成了整个软件的执行效率不高     访问数据库的性能主要有两个因素决定 一是数据库服务器本身的性能 如数据库管理系统 数据库结构的设计 其二就是与数据库相对独立的JDBC应用编程接口(API)的使用也很大程度上影响着JDBC程序的性能 前一点不属于我们讨论的范围 我们不做详细论述     JDBC数据库访问机制      >    · 图一左边的分支称为Type 驱动模式 即通常由Sun公司提供的JDBC ODBC桥 加上一个ODBC驱动 它提供了经由一种或多种ODBC驱动进行访问的JDBC接口 通常的DBMS都支持微软提出的ODBC规范 因此该模式可以普遍使用 非常灵活 具有很好的代码移植性 但该模式不适用于high transaction环境 也没有好的支持 并且功能有限 因为每次调用都要转换成ODBC调用 所以这种模式与其他模式相比性能最差 因而Type 仅适用于下载和自动安装Java程序不重要 实验用途或者没有其它JDBC驱动可用的情况下 绝不推荐用于生产     · 图一右边的分支成为Type 驱动模式 类似于JDBC ODBC桥接器 需要加载到客户机 却是一个部分用Java实现的驱动接口 使用本地API 它将JDBC调用转换为对数据库(Oracle Sybase Informix DB 等)客户端接口的调用     · 图二左边的分支称为Type 驱动模式 它一般是数据库厂商才能实现的纯Java的基于本地协议的驱动 直接调用DBMS(数据库管理系统)使用的网络协议 对于企业内部互联网来说 是一个实用的解决方案     · 图二右边的分支称为Type 驱动模式 它同样是一个纯Java驱动 不同于Type 驱动模式的是基于网络协议 它的机制是将JDBC调用转换为中间网络协议 然后转换为DBMS协议 中间网络协议层起到一个读取数据库的中间件的作用 能够连接许多类型的数据库 因而是最灵活的JDBC模式     了解了现有的JDBC驱动类型以后 我们做一下综合分析     Type 驱动支持多种数据库访问 理论上利用客户机本地代码库 可以加速数据访问的执行 但因为要做JDBC——ODBC转换 相应的开销绝对大于前者产生的性能提高 因此不可能有好的性能支持 由于多种原因 该类驱动得不到服务商的好的支持 使其无论性能还是功能都相对差劲 事实上该类驱动基本上得不到使用     Type 驱动类似于Type 利用了客户机本地代码 虽然不需要将数据库请求转换成ODBC调用 但有二进制代码客户端装载开销 不太可能有好的性能 另外 虽然其上层用Java实现 但因为与下层本地代码邦定紧密 无论是跨平台应用还是多数据库支持都很限制 因此不推荐该类型驱动     Type 驱动是纯Java驱动 一般由应用服务器提供商集成到应用服务器中 为三层结构 能连接许多类型的数据库 非常灵活 看似中间多了一个环节 但应用服务器提供这种驱动程序的同时也提供了很多优化的功能 它们一般还会配套的提供连接池 数据缓冲区 负载均衡等 所以性能并不差     Type 驱动也是纯Java驱动 但其直接访问数据库 一般说来 商业DBMS的提供者往往会为自己的数据库提供Type 的JDBC接口 这种模式的优势在于和数据库本身结合比较紧密 而且是纯Java的实现 在企业级的软件应用中 应该是首选 另外 第三方也给于大力支持 例如 对于Oracle数据库来说 有Oracle SilverStream DataDirect等公司提供这种类型的驱动 其性能往往被评价为最高效的 最可靠的驱动程序 但偶尔也有比较麻烦的情况 例如微软就不会提供MS SQL的JDBC接口(至少目前笔者了解的情况是这样) 这时就需要到Sun的网站()查找相关的模式 驱动 上面提到的DataDirect公司(/jdbc/jdbc asp)就提供了支持MS SQL的Type 驱动 只是你需要支付$购买这个JDBC驱动     Type 和Type 第三方驱动可能会提供比数据库商的驱动更好的性能 并且能更好的执行 究其原因也是显而易见的 驱动商全神贯注于驱动 数据库商有更多其他的事情要考虑     同样是纯Java实现的Type 与Type 相比 优势在于对多种数据库的支持 体现了其灵活性 在大型的企业级的软件应用中 后台数据库往往不是一个 而且是由不同的厂商支持的 不过 Type 的JDBC驱动往往提供许多企业级的特征 例如SSL安全 支持分布式事务处理和集中管理等 因而会对你特殊的用途有很大的帮助 至于其性能 二者相当 如何选择 就看你应用的需要了     综上所述 如果可能 Type 绝不要用 Type 和Type 由于众多厂商的支持 有连接池 数据缓冲等技术的使用 性能比Type 和Type 都要好 又都是纯Java的实现 属于首选     另外普遍反映 对于Oracle数据库 尽管Oracle说OCI驱动为最佳的客户端访问驱动 但事实上Thin驱动程序可以获得更好的性能    cha138/Article/program/Java/gj/201311/27289

相关参考

知识大全 java nio 开发实例

  首先了解下所谓的javanio是个什么东西!  传统的并发型服务器设计是利用阻塞型网络I/O以多线程的模式来实现的然而由  于系统常常在进行网络读写时处于阻塞状态会大大影响系统的性能自Java开始

知识大全 如何优化JAVA程序开发,提高JAVA性能

如何优化JAVA程序开发,提高JAVA性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  通过使

知识大全 一个开发实际项目中对 Java 性能提高的体会

一个开发实际项目中对Java性能提高的体会  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在开发

知识大全 Java程序性能优化-设计调优

Java程序性能优化-设计调优  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   性能调

知识大全 为JAVA性能而设计(3)

为JAVA性能而设计(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者eclipse  

知识大全 为JAVA性能而设计(2)

为JAVA性能而设计(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者eclipse  

知识大全 Java程序性能优化-善用设计模式

Java程序性能优化-善用设计模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第章 

知识大全 如何优化JAVA程序设计和编码,提高性能

如何优化JAVA程序设计和编码,提高性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  通过使用

知识大全 Java开发中的23种设计模式

Java开发中的23种设计模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Java性能优化技巧集锦

开发晋级篇:Java性能优化技巧集锦  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  不用new关