欢迎来到天天文库
浏览记录
ID:49469724
大小:411.50 KB
页数:39页
时间:2020-02-05
《WebLogic-JDBC.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JDBC徐春好ChannelAndGlobalAlliance内容JDBCDriverJDBCConnectionWLSJDBC的管理JDBC事务JDBCDriverJDBCJDBC提供了一个统一的接口来访问数据库JDBCDriverType1类型驱动JDBC-ODBC桥通常运行Windows平台需要在客户端安装ODBC驱动早期Java访问数据库的主要方式,效率较低Type2类型驱动Type2类型驱动需要在客户端安装数据库的本地驱动JDBC请求会转换为对数据库本地API的调用Type3类型驱动Ty
2、pe3类型驱动JDBC请求通过网络服务器层实现在网络服务器层可以实现负载均衡,连接池管理等Type4类型驱动Type4类型驱动为纯Java实现不需要任何客户端设置JDBC应用的两种架构两层架构客户程序直接对数据库发起JDBC请求,Type1、2、4支持两层架构多层架构客户程序将JDBC请求发送到中间层,中间层再将请求发送到数据库常见数据库驱动配置连接池需要知道特定数据库URL、数据库属性及相应驱动类数据库URL格式:jdbc:subprotocol:subname常见数据库驱动的ClassName
3、及JDBCURL如下:Weblogic与JDBC驱动驱动程序要和Webloigc一起工作,必须符合以下标准:必须是线程安全必须是EJB可访问的最好支持JDBC2.0最好支持通过DataSource接口的JNDI查找JDBCConnection连接直接连接(directconnection)池连接(pooledconnection)连接复用,避免了数据库连接频繁建立、关闭的开销对JDBC中的原始连接进行了封装,隔离了应用的本身的处理逻辑和具体数据库访问逻辑什么是连接池?连接池是在Weblogic启动
4、时候预先建立的数据库连接,由Weblogic在运行时负责维护。可以减少程序每次数据库请求都要新创建数据库物理连接的时间及资源。对数据库属性的更改只需通过控制台进行,不需改动客户端代码WLSConnectionPoolMultiPool可以使用MultiPool为高用户访问量提供数据库负载均衡,它使用简单的循环算法将连接请求平衡分配MultiPool中的每一个池。DataSource数据源对应一个数据库连接池。客户程序可以通过数据源绑定的JNDI名字得到该数据源的引用,并通过数据源对象得到数据库连接
5、。JDBCAPIJDBC的APIjava.sql.DriverManagerjava.sql.Connectionjava.sql.ResultSetJavax.sql.RowSet:javax.sql.Statementjava.sql.PreparedStatement:用于执行预编译的SQL语句java.sql.CallableStatement:用于执行在数据库中定义的存储过程Javax.sql.DataSourceJDBC示例JDBC示例WLSJDBC的管理在控制台配置连接池配置连接池属
6、性监控JDBC连接池WaitersHight字段指明了最多有多少客户等待数据库连接Waiters字段告诉你当前有多少客户正在等待连接ConnectionsHight字段给出最大的并发连接数。WaitSecondsHight字段显示了客户等待数据库连接的最长时间配置数据源发布数据源动态创建ConnectionPool动态创建可以有两种方式:weblogic.Admin的CREATE_POOL命令使用weblogic的JMXAPIJDBC事务数据库事务基础当处理多个访问相同数据的用户时,通常可能出现三
7、种问题:脏读当应用程序使用了被另一个应用程序修改过的数据,而这个数据处于未提交状态时,就会发生脏读。第二个应用程序随后会请求回滚被其修改的数据。第一个事务使用的数据就会被损坏,或者“变脏”。不可重复的读当一个事务获得了数据,而该数据随后被一个单独的事务所更改时,若第一个事务再次读取更改后的数据,就会发生不可重复的读。这样,第一个事务进行了一个不可重复的读虚读当事务通过某种查询获取了数据,另一个事务修改了部分该数据,原来的事务第二次获取该数据时,就会发生虚读。第一个事务现在会有不同的结果集,它可能包
8、含虚读。Java.sql.Connection接口定义的隔离级别TRANSACTION_NONE说明不支持事务TRANSACTION_READ_UNCOMMITTED说明在提交前一个事务可以看到另一个事务的变化。这样脏读、不可重复的读和虚读都是允许的。TRANSACTION_READ_COMMITTED说明读取未提交的数据是不允许的。这个级别仍然允许不可重复的读和虚读产生。TRANSACTION_REPEATABLE_READ说明事务保证能够再次读取相同的数据而不会失败,但虚读仍然
此文档下载收益归作者所有
点击更多查看相关文章~~