JDBC学习笔记——JDBC性能优化-By Jon.docVIP

  • 28
  • 0
  • 约2.85千字
  • 约 5页
  • 2018-05-31 发布于河南
  • 举报
JDBC学习笔记——JDBC性能优化-By Jon JDBC学习笔记——JDBC性能优化 作者:佚名 来自:CSDN 程序的性能主要由两个因素决定,一是数据库本身的性质,另一个是与数据库相对独立的jdbc应用程序接口(api)的使用。这里说的是如何正确使用jdbc编程接口,以获得更好的性能。 主要优化有: 选择正确的jdbc驱动程序 的优化:使用连接池来管理Connection对象 的优化:使用批量更新等 的优化:正确的从数据库中get数据等 选择正确的jdbc驱动程序: 、jdbc-odbc 桥 、本地api-部分 java驱动 、jdbc网路协议-纯java驱动 、jdbc本地协议 最好选择 jdbc网路协议-纯java驱动 效率比较高 但需要第三方软件的支持 比如corba weblogic属于这种类型 优化Connection对象: 、设置适当的参数 例如: props.put(user,wuwei); props.put(password,wuwei); props.put(defaultRowPrefectch,30); props.put(dufaultBatchValue,5); Connection con=DriverManager.getConnection(jdbc:oracle:thin:@hostsString,props); 对象可以通过设置setDefaultRowPrefetch(int) 和 setDefaultBatchValue(int) 两个参数类优化连接 2、使用连接池 可以自己写一个连接池,这样程序的灵活性强,便于移植。 apache项目开发了一套非常通用而表现非常稳定的对象池 /commons/pool.htm 设计了自己的连接池后,在客户端调用建立对象: public Object makeObject() throws Exception{ Class.forName(oracle.jdbc.driver.OracalDriver); return DriverManager.getConnection(url,username,password); } 销毁对象时用: public void destroyObject(Object obj) throws Exception{ ((Connection)obj.close()); } 注意几点:对象池里有没有回收机制,对象池里有机有容量限制,对象池里有多少个闲置对象(可以释放) 3、控制事务的提交 最好手动提交事务,不但可以可以保证数据原子性,而且对新能提高留下余地。 try{ connection.setAutoCommint(false); // 代码用PreparedStatement性能比Statementh好 mit(); connection.setAutoCommit(true); }catch(SQLException e){ }finally{ //代码 if(connection!=null){ connection.close(); } } 4、适当的选择事务的隔离级别 TRANSACTION_READ_UNCOMMITED 性能最高 TRANSACTION_READ_COMMITED 快 TRANSACTION_REFEATABLE_READ 中等 RANSACTION_SERIALIZABLE 慢 (3)Statement 优化: jdbc3个接口用来处理sql的执行,是Statement PreparedStatement CallableStatement提供适当的Statement接口批量执行sql从数据库批量获取数据。 PreparedStatement 比Statement性能要好 主要体现在一个sql语句多次重复执行的情况。 PreparedStatemnt只编译解析一次而Statement每次编译一次。 批量修改数据库 Statement 提供方法addBatch(String)和executeBatch() 调用方法为 stmt.addBatch(isnert.....); stmt.addBatch(update.....); stmt.executeBatch(); 也可以用PreparedStatement从而更好的提高性能: 

文档评论(0)

1亿VIP精品文档

相关文档