收藏 分享(赏)

WebLogic-JDBC.ppt

上传人:scg750829 文档编号:9126314 上传时间:2019-07-24 格式:PPT 页数:39 大小:411.50KB
下载 相关 举报
WebLogic-JDBC.ppt_第1页
第1页 / 共39页
WebLogic-JDBC.ppt_第2页
第2页 / 共39页
WebLogic-JDBC.ppt_第3页
第3页 / 共39页
WebLogic-JDBC.ppt_第4页
第4页 / 共39页
WebLogic-JDBC.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、JDBC,徐春好 Channel And Global Alliance,内容,JDBC Driver JDBC Connection WLS JDBC的管理 JDBC 事务,JDBC Driver,JDBC,JDBC提供了一个统一的接口来访问数据库,JDBC Driver,Type 1类型驱动,JDBC-ODBC桥 通常运行Windows平台 需要在客户端安装ODBC驱动 早期Java访问数据库的主要方式,效率较低,Type 2类型驱动,Type 2类型驱动 需要在客户端安装数据库的本地驱动 JDBC请求会转换为对数据库本地API的调用,Type 3类型驱动,Type 3类型驱动 JDBC请

2、求通过网络服务器层实现 在网络服务器层可以实现负载均衡,连接池管理等,Type 4类型驱动,Type 4类型驱动 为纯Java实现 不需要任何客户端设置,JDBC应用的两种架构,两层架构 客户程序直接对数据库发起JDBC请求,Type1、2、4支持两层架构 多层架构 客户程序将JDBC请求发送到中间层,中间层再将请求发送到数据库,常见数据库驱动,配置连接池需要知道特定数据库URL、数据库属性及相应驱动类 数据库URL格式:jdbc:subprotocol:subname 常见数据库驱动的Class Name及JDBC URL如下:,Weblogic 与JDBC驱动,驱动程序要和Webloigc

3、一起工作,必须符合以下标准: 必须是线程安全 必须是EJB可访问的 最好支持JDBC2.0 最好支持通过DataSource接口的JNDI查找,JDBC Connection,连接,直接连接(direct connection) 池连接(pooled connection) 连接复用 ,避免了数据库连接频繁建立、关闭的开销 对JDBC中的原始连接进行了封装 ,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,什么是连接池?,连接池是在Weblogic启动时候预先建立的数据库连接,由Weblogic在运行时负责维护。 可以减少程序每次数据库请求都要新创建数据库物理连接的时间及资源。 对数据库属性的

4、更改只需通过控制台进行,不需改动客户端代码,WLS Connection Pool,MultiPool,可以使用MultiPool为高用户访问量提供数据库负载均衡,它使用简单的循环算法将连接请求平衡分配MultiPool中的每一个池。,DataSource,数据源对应一个数据库连接池。客户程序可以通过数据源绑定的JNDI名字得到该数据源的引用,并通过数据源对象得到数据库连接。,JDBC API,JDBC的API,java.sql.DriverManager java.sql.Connection java.sql.ResultSet Javax.sql.RowSet: javax.sql.St

5、atement java.sql.PreparedStatement:用于执行预编译的SQL语句 java.sql.CallableStatement:用于执行在数据库中定义的存储过程 Javax.sql.DataSource,JDBC示例,JDBC示例,WLS JDBC的管理,在控制台配置连接池,配置连接池属性,监控JDBC连接池,Waiters Hight字段指明了最多有多少客户等待数据库连接 Waiters字段告诉你当前有多少客户正在等待连接 Connections Hight字段给出最大的并发连接数。 Wait Seconds Hight字段显示了客户等待数据库连接的最长时间,配置数据

6、源,发布数据源,动态创建Connection Pool,动态创建可以有两种方式: weblogic.Admin 的CREATE_POOL命令 使用weblogic 的JMX API,JDBC 事务,数据库事务基础,当处理多个访问相同数据的用户时,通常可能出现三种问题: 脏读 当应用程序使用了被另一个应用程序修改过的数据,而这个数据处于未提交状态时,就会发生脏读。第二个应用程序随后会请求回滚被其修改的数据。第一个事务使用的数据就会被损坏,或者“变脏”。 不可重复的读 当一个事务获得了数据,而该数据随后被一个单独的事务所更改时,若第一个事务再次读取更改后的数据,就会发生不可重复的读。这样,第一个事

7、务进行了一个不可重复的读 虚读 当事务通过某种查询获取了数据,另一个事务修改了部分该数据,原来的事务第二次获取该数据时,就会发生虚读。第一个事务现在会有不同的结果集,它可能包含虚读。,Java.sql.Connection接口定义的隔离级别,TRANSACTION_NONE 说明不支持事务 TRANSACTION_READ_UNCOMMITTED 说明在提交前一个事务可以看到另一个事务的变化。这样脏读、不可重复的读和虚读都是允许的。 TRANSACTION_READ_COMMITTED 说明读取未提交的数据是不允许的。这个级别仍然允许不可重复的读和虚读产生。 TRANSACTION_REPEA

8、TABLE_READ 说明事务保证能够再次读取相同的数据而不会失败,但虚读仍然会出现。 TRANSACTION_SERIALIZABLE 是最高的事务级别,它防止脏读、不可重复的读和虚读。,事务的隔离级别,在J2EE中,通过java.sql.Connection接口设置事务隔离级别,这一接口为连接的隔离级别提供了getter()和setter() Int getTransactionIsolation() throws SQLException void setTransactionIsolation() throws SQLException Connection对象负责事务,一旦收到事务请

9、求,事务将自动提交,因为Connection对象已定义为自动提交方式,可通过setAutoCommit(false)禁用自动提交模式 另外java.sql.DatabaseMetaData接口为数据存储提供支持的隔离级别查找方法:getTransactionIsolation(),supportsTransactionIsolationLevel() 对多个库操作的分布式事务必须在所有库中执行同一个隔离级别,否则会出现意想不到的结果,事务提交和回滚,为了完成提交事务和回滚事务,JDBC API包括了两个方法作为 Connection 接口的一部分。若将 Connection 对象名称指定为 c

10、on,通过调用 mit(); 可以保存程序状态;通过调用 con.rollback(); 可以返回到以前保存的状态。如果数据库实际运行操作时有错误发生,这两个方法都会抛出 SQLExceptions,所以您需要在 try . catch 块中包装它们,批处理和事务,缺省情况下,JDBC 驱动程序运行在被称为自动提交的模式下,可禁用自动提交模式 con.setAutoCommit(false); 批处理操作中通过在一次单独的操作(或批处理)中执行多个数据库更新操作 con.setAutoCommit(false) ; Statement stmt = connection.createState

11、ment() ; stmt.addBatch(“INSERT INTO people VALUES(Joe Jackson, 0.325, 25, 105) ; stmt.addBatch(“INSERT INTO people VALUES(Jim Jackson, 0.349, 18, 99) ; stmt.addBatch(“INSERT INTO people VALUES(Jack Jackson, 0.295, 15, 84) ; int updateCounts = stmt.executeBatch() ; mit() ; ,严密的事务控制,从 JDBC 3.0 API 开始,

12、增加了一个与事务相关的新的接口元素。这个接口引入了储存点的概念 储存点在数据库应用程序中提供了专门的标记,当调用回滚方法的时候它可以作为参数使用,Savepoint svpt= con.setSavepoint(“Savepoint“) ; con.rollback(svpt) ; con.releaseSavepoint(svpt) ;,JDBC 最佳实践,JDBC最佳实践,选择正确的JDBC Driver 使用连接池 关闭自动提交功能,提高系统性能 设置适当的事务隔离级别,JDBC最佳实践,选用恰当的Statement接口 Statement PreparedStatement CallableStatement 无论多少次地使用同一个SQL命令 ,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译 CallableStatement是用来执行存储过程的,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报