




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JDBC,徐春好ChannelAndGlobalAlliance,内容,JDBCDriverJDBCConnectionWLSJDBC的管理JDBC事务,JDBCDriver,JDBC,JDBC提供了一个统一的接口来访问数据库,JDBCDriver,Type1类型驱动,JDBC-ODBC桥通常运行Windows平台需要在客户端安装ODBC驱动早期Java访问数据库的主要方式,效率较低,Type2类型驱动,Type2类型驱动需要在客户端安装数据库的本地驱动JDBC请求会转换为对数据库本地API的调用,Type3类型驱动,Type3类型驱动JDBC请求通过网络服务器层实现在网络服务器层可以实现负载均衡,连接池管理等,Type4类型驱动,Type4类型驱动为纯Java实现不需要任何客户端设置,JDBC应用的两种架构,两层架构客户程序直接对数据库发起JDBC请求,Type1、2、4支持两层架构多层架构客户程序将JDBC请求发送到中间层,中间层再将请求发送到数据库,常见数据库驱动,配置连接池需要知道特定数据库URL、数据库属性及相应驱动类数据库URL格式:jdbc:subprotocol:subname常见数据库驱动的ClassName及JDBCURL如下:,Weblogic与JDBC驱动,驱动程序要和Webloigc一起工作,必须符合以下标准:必须是线程安全必须是EJB可访问的最好支持JDBC2.0最好支持通过DataSource接口的JNDI查找,JDBCConnection,连接,直接连接(directconnection)池连接(pooledconnection)连接复用,避免了数据库连接频繁建立、关闭的开销对JDBC中的原始连接进行了封装,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,什么是连接池?,连接池是在Weblogic启动时候预先建立的数据库连接,由Weblogic在运行时负责维护。可以减少程序每次数据库请求都要新创建数据库物理连接的时间及资源。对数据库属性的更改只需通过控制台进行,不需改动客户端代码,WLSConnectionPool,MultiPool,可以使用MultiPool为高用户访问量提供数据库负载均衡,它使用简单的循环算法将连接请求平衡分配MultiPool中的每一个池。,DataSource,数据源对应一个数据库连接池。客户程序可以通过数据源绑定的JNDI名字得到该数据源的引用,并通过数据源对象得到数据库连接。,JDBCAPI,JDBC的API,java.sql.DriverManagerjava.sql.Connectionjava.sql.ResultSetJavax.sql.RowSet:javax.sql.Statementjava.sql.PreparedStatement:用于执行预编译的SQL语句java.sql.CallableStatement:用于执行在数据库中定义的存储过程Javax.sql.DataSource,JDBC示例,JDBC示例,WLSJDBC的管理,在控制台配置连接池,配置连接池属性,监控JDBC连接池,WaitersHight字段指明了最多有多少客户等待数据库连接Waiters字段告诉你当前有多少客户正在等待连接ConnectionsHight字段给出最大的并发连接数。WaitSecondsHight字段显示了客户等待数据库连接的最长时间,配置数据源,发布数据源,动态创建ConnectionPool,动态创建可以有两种方式:weblogic.Admin的CREATE_POOL命令使用weblogic的JMXAPI,JDBC事务,数据库事务基础,当处理多个访问相同数据的用户时,通常可能出现三种问题:脏读当应用程序使用了被另一个应用程序修改过的数据,而这个数据处于未提交状态时,就会发生脏读。第二个应用程序随后会请求回滚被其修改的数据。第一个事务使用的数据就会被损坏,或者“变脏”。不可重复的读当一个事务获得了数据,而该数据随后被一个单独的事务所更改时,若第一个事务再次读取更改后的数据,就会发生不可重复的读。这样,第一个事务进行了一个不可重复的读虚读当事务通过某种查询获取了数据,另一个事务修改了部分该数据,原来的事务第二次获取该数据时,就会发生虚读。第一个事务现在会有不同的结果集,它可能包含虚读。,Java.sql.Connection接口定义的隔离级别,TRANSACTION_NONE说明不支持事务TRANSACTION_READ_UNCOMMITTED说明在提交前一个事务可以看到另一个事务的变化。这样脏读、不可重复的读和虚读都是允许的。TRANSACTION_READ_COMMITTED说明读取未提交的数据是不允许的。这个级别仍然允许不可重复的读和虚读产生。TRANSACTION_REPEATABLE_READ说明事务保证能够再次读取相同的数据而不会失败,但虚读仍然会出现。TRANSACTION_SERIALIZABLE是最高的事务级别,它防止脏读、不可重复的读和虚读。,事务的隔离级别,在J2EE中,通过java.sql.Connection接口设置事务隔离级别,这一接口为连接的隔离级别提供了getter()和setter()IntgetTransactionIsolation()throwsSQLExceptionvoidsetTransactionIsolation()throwsSQLExceptionConnection对象负责事务,一旦收到事务请求,事务将自动提交,因为Connection对象已定义为自动提交方式,可通过setAutoCommit(false)禁用自动提交模式另外java.sql.DatabaseMetaData接口为数据存储提供支持的隔离级别查找方法:getTransactionIsolation(),supportsTransactionIsolationLevel()对多个库操作的分布式事务必须在所有库中执行同一个隔离级别,否则会出现意想不到的结果,事务提交和回滚,为了完成提交事务和回滚事务,JDBCAPI包括了两个方法作为Connection接口的一部分。若将Connection对象名称指定为con,通过调用mit();可以保存程序状态;通过调用con.rollback();可以返回到以前保存的状态。如果数据库实际运行操作时有错误发生,这两个方法都会抛出SQLExceptions,所以您需要在try.catch块中包装它们,批处理和事务,缺省情况下,JDBC驱动程序运行在被称为自动提交的模式下,可禁用自动提交模式con.setAutoCommit(false);批处理操作中通过在一次单独的操作(或批处理)中执行多个数据库更新操作con.setAutoCommit(false);Statementstmt=connection.createStatement();stmt.addBatch(INSERTINTOpeopleVALUES(JoeJackson,0.325,25,105);stmt.addBatch(INSERTINTOpeopleVALUES(JimJackson,0.349,18,99);stmt.addBatch(INSERTINTOpeopleVALUES(JackJackson,0.295,15,84);intupdateCounts=stmt.executeBatch();mit();,严密的事务控制,从JDBC3.0API开始,增加了一个与事务相关的新的接口元素。这个接口引入了储存点的概念储存点在数据库应用程序中提供了专门的标记,当调用回滚方法的时候它可以作为参数使用,Savepointsvpt=con.setSavepoint(Savepoint);con.rollback(svpt);con.releaseSavepoint(svpt);,JDBC最佳实践,JDBC最佳实践,选择正确的JDBCDriver使用连接池关闭自动提交功能,提高系统性能设置适当的事务隔离级别,JDBC最佳
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆丰都县2025年上半年事业单位公开遴选试题含答案分析
- 毛皮市场:繁荣与机遇
- 河北省文安县2025年上半年事业单位公开遴选试题含答案分析
- 2025版石子行业绿色采购与销售战略合作协议
- 2025年度消防设备租赁与维护三方合作协议
- 2025版网络安全软件技术服务合同
- 2025定制加工合同范本:珠宝首饰定制加工合作协议
- 2025版新媒体内容运营与推广社会化媒体营销服务协议
- 2025版石材进出口贸易与金融服务合同
- 2025版彭园一处场地招租与电子商务平台合作协议
- 2023年版企业投资项目可行性研究报告编写参考大纲
- 陕西省中考数学历年(2016-2022年)真题分类汇编专题8四边形及答案
- 沈阳市双倍德化学厂锅炉改造项目环评报告
- GB/T 923-2009六角盖形螺母
- GB/T 35690-2017弱磁材料相对磁导率的测量方法
- 学会关心-教育的另一种模式课件
- JB∕T 13977-2020 液化天然气(LNG)低温潜液泵
- 口咽通气道的使用方法
- 消防火灾自动报警主机更换(增加)施工方案
- 山西省太原市小升初语文试卷(含答案)
- 质量管理统计工具(共102页).ppt
评论
0/150
提交评论