- 浏览: 44663 次
-
文章分类
- 全部博客 (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 1020<div>四、线程间的同步 <div ... -
llvm-clang
2012-02-07 17:14 1092clang ... -
php session_cache_limiter详解
2012-02-07 15:18 2787<span style="backgr ... -
一个简单的Unix脚本(文件拷贝打包)
2012-02-04 17:09 965题目要求: 实现备份脚本,将目录: /sbin ... -
EJB 2.0 VS EJB3.0
2012-02-04 16:39 913SUMMARY: Removal of home in ... -
Execution in the Kingdom of Nouns
2012-02-03 16:39 1916<h3>Execution in the ... -
MySQL安装详解(V5.5 For Windows)
2012-02-01 09:39 828<p>MySQL安装详解(V5.5 For ... -
瞎混了好久,今天开博
2012-01-31 14:13 812<p>作为一名“无证”程序员,自己瞎混了这 ... -
Android开发之数据保存技术(一)
2012-01-11 17:14 7949<h1>Android开发之数据保存技术( ... -
腾讯微博java(android) sdk 标签相关api详细介绍
2012-01-11 13:53 1145<span style="font-f ... -
hibernate使用sql查询text类型的字段出错
2011-12-28 16:28 1477晚上查了一下,做个记录 hibernate默认不支持t ... -
ORA-01114错误原因及解决方法(临时表空间坏掉、或者满了)
2011-12-28 14:23 1821<span style="font-f ... -
单链表逆序
2011-12-21 11:24 1407实现一: #include "stdafx. ... -
iOS开发之多媒体播放
2011-12-19 15:49 1031iOS sdk中提供了很多方便的方法来播放多媒体。本 ... -
iOS开发之Objective-C与JavaScript的交互
2011-12-19 14:48 1135UIWebView是iOS最常用的SDK之一,它有一个 ... -
J2EE中 实体BEAN和会话BEAN的区别
2011-12-15 10:14 950<span style="" ... -
一个比较有用的XML文件操作类 C#代码 可以继续扩展
2011-12-15 09:49 918CXml</span>{</spa ... -
MapXtreme2004开发的Web程序的部署
2011-12-14 16:39 880</span></font>& ... -
毕业了
2011-12-14 11:39 707今天终于顺利的通过了硕士毕业答辩。<br> ... -
《软件开发的边界-管理成功的项目》
2011-12-13 10:04 769本书是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学习笔记中,通常会涵盖以下几个重要知识点: 1. JDBC概述:介绍JDBC的定义、作用以及在Java数据库交互中的地位。解释JDBC驱动的分类,包括JDBC-ODBC桥驱动、本地API部分用Java编写的部分驱动、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语句,处理结果集,并进行事务管理。这篇...