- 浏览: 44267 次
文章分类
- 全部博客 (35)
- java (35)
- zk安装 (1)
- 从零开始认识 JasperReport + IReport (JasperReport部分) (1)
- Javadoc查看、搜索、比较利器——GroovyHelp 3.1.5 GA发布 (1)
- 设计模式-Simple Factory 模式 (1)
- biaodashi (1)
- 格局定乾坤 (1)
- 一个spatialReference引发的血案 (1)
- 创造亿万富翁的神奇公式 (1)
- 打印机 (2)
- js 调用flex 方法 (1)
- tomcat部署 (1)
- 2010 -> 2011 (1)
- Android颜色选择器 (1)
- 《软件开发的边界-管理成功的项目》 (1)
- 毕业了 (1)
- MapXtreme2004开发的Web程序的部署 (1)
- 一个比较有用的XML文件操作类 C#代码 可以继续扩展 (1)
- J2EE中 实体BEAN和会话BEAN的区别 (1)
- iOS开发之Objective-C与JavaScript的交互 (1)
- iOS开发之多媒体播放 (1)
- 单链表逆序 (1)
- ORA-01114错误原因及解决方法(临时表空间坏掉、或者满了) (1)
- hibernate使用sql查询text类型的字段出错 (1)
- 腾讯微博java(android) sdk 标签相关api详细介绍 (1)
- Android开发之数据保存技术(一) (1)
- 瞎混了好久,今天开博 (1)
- MySQL安装详解(V5.5 For Windows) (1)
- Execution in the Kingdom of Nouns (1)
- EJB 2.0 VS EJB3.0 (1)
- 一个简单的Unix脚本(文件拷贝打包) (1)
- php session_cache_limiter详解 (1)
- llvm-clang (1)
- jdbc学习笔记-----jdbc性能优化 (1)
- java教程:解析java的多线程机制(二) (1)
最新评论
<div>这里说的是如何正确使用jdbc编程接口,以获得更好的性能.
<div>jdbc主要优化有:
<div>1.选择正确的jdbc驱动程序
<div>2.Connention的优化 使用连接池来管理Connection对象
<div>3.Statement的优化 使用批量更新等
<div>4.Result的优化 正确的从数据库中get数据等
<div><br>
<div>(1)选择正确的jdbc驱动程序:
<div>1 jdbc-odbc 桥
<div>2 本地api-部分 java驱动
<div>3 jdbc网路协议-纯java驱动
<div>4 jdbc本地协议
<div>最好选择 jdbc网路协议-纯java驱动 效率比较高 但需要第三方软件的支持 比如corba weblogic属于这种类型
<div><br>
<div>(2)优化Connection对象:
<div>1.设置适当的参数 DriverManager.getConnection(String url,Properties props);
<div>例如: Properties props=new Properties();
<div>props.put("user","wuwei");
<div>props.put("password","wuwei");
<div>props.put("defaultRowPrefectch","30");
<div>props.put("dufaultBatchValue","5");
<div>Connection con=DriverManager.getConnection("jdbc:oracle:thin:@hostsString",props);
<div>对象可以通过设置setDefaultRowPrefetch(int) 和 setDefaultBatchValue(int) 两个参数类优化连接
<div><br>
<div>2.使用连接池 可以自己写一个连接池 这样程序的灵活性强,便于移植.
<div>apache项目开发了一套非常通用而表现非常稳定的对象池 http://jakarta.apache.org/commons/pool.htm
<div>设计了自己的连接池后 在客户端调用建立对象
<div>public Object makeObject() throws Exception{
<div>Class.forName("oracle.jdbc.driver.OracalDriver");
<div>return DriverManager.getConnection("url","username","password");
<div>}
<div>销毁对象时用
<div>public void destroyObject(Object obj) throws Exception{
<div>((Connection)obj.close());
<div>}
<div>注意几点 对象池里有没有回收机制,对象池里有机有容量限制,对象池里有多少个闲置对象(可以释放)?
<div><br>
<div>3.控制事务的提交 最好手动提交事务,不但可以可以保证数据原子性,而且对新能提高留下余地.
<div>try{
<div>connection.setAutoCommint(false);
<div>// 代码 用PreparedStatement 性能比Statementh好.
<div><br>
<div>connection.commit();
<div>connection.setAutoCommit(true);
<div>}
<div>catch(SQLException e){
<div>}
<div>finally{
<div>//代码
<div>if(connection!=null){
<div>connection.close();?
<div>}
<div>}
<div><br>
<div>4.适当的选择事务的隔离级别 TRANSACTION_READ_UNCOMMITED 性能最高
<div>TRANSACTION_READ_COMMITED 快
<div>TRANSACTION_REFEATABLE_READ 中等
<div>RANSACTION_SERIALIZABLE 慢
<div><br>
<div>(3)Statement 优化
<div>jdbc3个接口用来处理sql的执行,是Statement PreparedStatement CallableStatement
<div>提供适当的Statement接口?
<div>批量执行sql
<div>从数据库批量获取数据
<div>PreparedStatement 比Statement性能要好 主要体现在一个sql语句多次重复执行的情况
<div>PreparedStatemnt只编译解析一次而Statement每次编译一次.
<div><br>
<div>批量修改数据库?
<div>Statement 提供了方法addBatch(String)和executeBatch()
<div>调用方法为stmt.addBatch("isnert....."); stmt.addBatch("update.....")
<div>stmt.executeBatch();
<div>也可以用PreparedStatement从而更好的提高性能.
<div>pstmt=conn.preparedStatement("insert into test_table(......) values(....?)");
<div>pstmt.setString(1,"aaa");
<div>pstmt.addBatch();
<div>pstmt.setString(1,"bbb");
<div>pstmt.addBatch();
<div>.....
<div>pstmt.executeBatch();
<div><br>
<div>批量地从数据库中取数据.
<div>通过setFetchSize()和getFectchSize()方法来设定和查看这个参数.这个参数对体统的性能影响比较大.
<div>这个参数太小会严重地降低程序地性能.
<div>Connection Statement ResultSet都有这个参数,他们对性能地影响顺序是:
<div>ResultSet---------Statement---------Connection
<div>(4)优化ResultSet.
<div>体现在以下几个方面
<div>批量读取数据.合理设置ResultSet的getFetchSize()和setFetchSize()方法中的参数
<div>使用正确的get和set方法
<div>使用整数而不是字段名作为参数性能比较高,
<div>例如 setInt(1,100);
<div>setString(2,"aaaa");
<div>比 setInt("id","100");
<div>setString("name","aaaa");
<div>性能好
<div>设置适当的滚动方向.有3个方向FETCH_FORWORD,FETCH_REVERSE FETCH_UNKNOWN
<div>单向滚动性能比较高.
<div>其他方面的性能优化
<div>及时显示的关闭Connection Statement ResultSet
<div>其中Connection可以用Connetion Pool处理.
<div>使用数据库系统的强大查询功能去组织数据.这样程序运行是和数据库服务的交互次数少,数据库返回给
<div>程序的记录条数少的多,所以性能有很大的提高.
发表评论
-
java教程:解析java的多线程机制(二)
2012-02-08 15:27 1015<div>四、线程间的同步 <div ... -
llvm-clang
2012-02-07 17:14 1081clang ... -
php session_cache_limiter详解
2012-02-07 15:18 2768<span style="backgr ... -
一个简单的Unix脚本(文件拷贝打包)
2012-02-04 17:09 955题目要求: 实现备份脚本,将目录: /sbin ... -
EJB 2.0 VS EJB3.0
2012-02-04 16:39 896SUMMARY: Removal of home in ... -
Execution in the Kingdom of Nouns
2012-02-03 16:39 1891<h3>Execution in the ... -
MySQL安装详解(V5.5 For Windows)
2012-02-01 09:39 821<p>MySQL安装详解(V5.5 For ... -
瞎混了好久,今天开博
2012-01-31 14:13 800<p>作为一名“无证”程序员,自己瞎混了这 ... -
Android开发之数据保存技术(一)
2012-01-11 17:14 7937<h1>Android开发之数据保存技术( ... -
腾讯微博java(android) sdk 标签相关api详细介绍
2012-01-11 13:53 1137<span style="font-f ... -
hibernate使用sql查询text类型的字段出错
2011-12-28 16:28 1463晚上查了一下,做个记录 hibernate默认不支持t ... -
ORA-01114错误原因及解决方法(临时表空间坏掉、或者满了)
2011-12-28 14:23 1804<span style="font-f ... -
单链表逆序
2011-12-21 11:24 1399实现一: #include "stdafx. ... -
iOS开发之多媒体播放
2011-12-19 15:49 1015iOS sdk中提供了很多方便的方法来播放多媒体。本 ... -
iOS开发之Objective-C与JavaScript的交互
2011-12-19 14:48 1124UIWebView是iOS最常用的SDK之一,它有一个 ... -
J2EE中 实体BEAN和会话BEAN的区别
2011-12-15 10:14 934<span style="" ... -
一个比较有用的XML文件操作类 C#代码 可以继续扩展
2011-12-15 09:49 908CXml</span>{</spa ... -
MapXtreme2004开发的Web程序的部署
2011-12-14 16:39 866</span></font>& ... -
毕业了
2011-12-14 11:39 698今天终于顺利的通过了硕士毕业答辩。<br> ... -
《软件开发的边界-管理成功的项目》
2011-12-13 10:04 760本书是Rational Software的资深项目经理 ...
相关推荐
JDBC学习笔记 JDBC(Java DataBase Connectivity)是一种Java程序语言访问数据库的标准接口。它使得Java程序可以连接到各种不同的数据库管理系统,例如Oracle、SQL Server、MySQL、DB2、Sybase等。 JDBC的概念 ...
- **JDBC驱动类型**:JDBC驱动分为四种类型,分别是JDBC-ODBC桥接驱动、本地API驱动、网络纯Java驱动和Java数据库连接(JDBC-4.0)驱动。每种驱动有其适用场景和优缺点。 - **数据库连接**:使用`Class.forName()`...
**JDBC学习笔记** 在Java开发中,JDBC(Java Database Connectivity)是连接数据库的关键技术。它是Java API,允许Java程序与各种类型的数据库进行交互。本笔记将深入探讨JDBC的核心概念、工作原理以及实际应用。 ...
JDBC的学习笔记涵盖了从基本概念到实际操作的各个方面,对于初学者来说是一份很好的参考资料。通过学习JDBC,开发者能够有效地在Java应用程序中集成数据库功能,实现数据的增删改查以及与存储过程的交互。理解和掌握...
### JDBC学习笔记知识点详解 #### 一、JDBC理论概述 **JDBC**(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供...
jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子
### JDBC学习笔记知识点详解 #### 一、JDBC原理概述 **JDBC**(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC...
jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子
jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子
jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子
**JDBC实战教程——尚硅谷学习笔记 2023年** Java Database Connectivity(JDBC)是Java平台中用于与数据库交互的一种标准接口。它由Java API组成,允许Java应用程序连接到各种数据库,执行SQL语句,处理结果集,...
总的来说,"达内jdbc学习笔记"涵盖了JDBC基础、数据库连接、SQL执行、结果集处理、事务管理和性能优化等多个关键知识点,对Java开发者来说是宝贵的参考资料。通过深入学习和实践,可以熟练地使用Java进行数据库操作...
在本篇JDBC学习笔记中,我们将深入探讨JDBC的基础知识、核心概念以及实际应用。 一、JDBC基础 1. JDBC驱动程序:JDBC驱动是连接Java应用程序和数据库之间的桥梁。根据实现方式,JDBC驱动分为四种类型:类型1(JDBC...
"JDBC学习笔记总结" JDBC(Java Database Connectivity)是一种Java API,用于连接和操作关系数据库。下面是JDBC学习笔记的总结: 连接到数据库的方法 1. ODBC(Open Database Connectivity):是一个以C语言为...
Sharding-JDBC, 它定位为轻量级 java 框架,在 Java 的 JDBC 层提供的额外服务。它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。...
本篇JDBC学习笔记将深入探讨JDBC的核心概念、操作步骤以及最佳实践。 **一、JDBC基本概念** 1. **驱动程序**:JDBC驱动程序是Java应用程序与数据库之间的桥梁,分为四种类型:JDBC-ODBC桥接驱动、本地API驱动、...
本学习笔记将深入探讨这两个技术的基础知识,以帮助初学者掌握它们的基本概念和应用。** ### JSP基础 1. **JSP概述**:JSP是一种基于Java的技术,它允许在服务器端生成HTML,使得开发者可以在网页中嵌入Java代码,...
**JDBC学习笔记** Java Database Connectivity (JDBC) 是Java平台中用于与各种数据库进行交互的一组接口和类。它是Java SE的一部分,允许Java应用程序连接到数据库,执行SQL语句,处理结果集,并进行事务管理。这篇...
Java学习笔记---从入门到精通之路.pdf Java是当前最流行的编程语言之一,本笔记旨在帮助初学者从基础到精通J2EE高手之路。本笔记涵盖了Java基础知识、J2EE框架、Web开发、数据库操作、图形游戏开发等方面的知识点,...