欢迎来到天天文库
浏览记录
ID:14030496
大小:27.50 KB
页数:5页
时间:2018-07-25
《jdbc学习笔记——jdbc性能优化-by jon》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JDBC学习笔记——JDBC性能优化-ByJonJDBC学习笔记——JDBC性能优化作者:佚名来自:CSDNjdbc程序的性能主要由两个因素决定,一是数据库本身的性质,另一个是与数据库相对独立的jdbc应用程序接口(api)的使用。这里说的是如何正确使用jdbc编程接口,以获得更好的性能。jdbc主要优化有:1.选择正确的jdbc驱动程序2.Connention的优化:使用连接池来管理Connection对象3.Statement的优化:使用批量更新等4.Result的优化:正确的从数据库中get数据等
2、(1)选择正确的jdbc驱动程序:1、jdbc-odbc桥2、本地api-部分java驱动3、jdbc网路协议-纯java驱动4、jdbc本地协议最好选择jdbc网路协议-纯java驱动效率比较高但需要第三方软件的支持比如corbaweblogic属于这种类型(2)优化Connection对象:1、设置适当的参数DriverManager.getConnection(Stringurl,Propertiesprops);例如:Propertiesprops=newPropertie
3、s();props.put("user","wuwei");props.put("password","wuwei");props.put("defaultRowPrefectch","30");props.put("dufaultBatchValue","5");Connectioncon=DriverManager.getConnection("jdbc:oracle:thin:@hostsString",props);对象可以通过设置setDefaultRowPrefetch(int)和
4、setDefaultBatchValue(int)两个参数类优化连接2、使用连接池可以自己写一个连接池,这样程序的灵活性强,便于移植。apache项目开发了一套非常通用而表现非常稳定的对象池http://jakarta.apache.org/commons/pool.htm设计了自己的连接池后,在客户端调用建立对象:publicObjectmakeObject()throwsException{Class.forName("oracle.jdbc.driver.OracalDriver");ret
5、urnDriverManager.getConnection("url","username","password");}销毁对象时用:publicvoiddestroyObject(Objectobj)throwsException{((Connection)obj.close());}注意几点:对象池里有没有回收机制,对象池里有机有容量限制,对象池里有多少个闲置对象(可以释放)3、控制事务的提交最好手动提交事务,不但可以可以保证数据原子性,而且对新能提高留下余地。try{
6、connection.setAutoCommint(false);//代码用PreparedStatement性能比Statementh好connection.commit();connection.setAutoCommit(true);}catch(SQLExceptione){}finally{//代码if(connection!=null){connection.close();}}4、适当的选择事务的隔离级别TRANSACTION_
7、READ_UNCOMMITED性能最高TRANSACTION_READ_COMMITED快TRANSACTION_REFEATABLE_READ中等RANSACTION_SERIALIZABLE慢(3)Statement优化:jdbc3个接口用来处理sql的执行,是StatementPreparedStatementCallableStatement提供适当的Statement接口批量执行sql从数据库批量获取数据。PreparedStatement比Statement性能要好主要体现在一个sql语
8、句多次重复执行的情况。PreparedStatemnt只编译解析一次而Statement每次编译一次。批量修改数据库Statement提供方法addBatch(String)和executeBatch()调用方法为stmt.addBatch(
此文档下载收益归作者所有