赛迪网 > IT技术 Java > Java-企业应用
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

设计及设计模式:JDBMonitor基本原理探究

发布时间:2008.03.03 04:54     来源:赛迪网    作者:cownew

JDBMonitor(可以从www.cownew.com下载)是一个非常强大的数据库监控、日志工具,它的无侵入性是它最大的特点。所谓无侵入性指的是无需编写代码就可以为系统增加数据日监控、日志功能。那么它到底是怎么实现的呢?咱们来探索一下它的基本原理。
要明白JDBMonitor的工作原理,必须首先弄明白JDBC驱动的工作原理:
所有的JDBC驱动都实现java.sql.Driver接口,此接口有两个重要方法:Connection connect(String url, java.util.Properties info),boolean acceptsURL(String url)。
JDBC中有个DriverManager类,它有一个重要方法,
registerDriver(java.sql.Driver driver)
所有的JDBC驱动都要调用此方法,这样才能将注册到驱动管理器中。
当用户调用DriverManager.getConnection("jdbc:......")的时候,DriverManager就把用户穿过来的连接字符串“jdbc:......”发给每个注册的驱动Driver的acceptsURL方法做为参数,驱动Driver就调用这个Driver的connect方法然后将方法的返回值直接做为自己的返回值。


JDBMonitor写了自己的JDBCDriver:DBDriver,这个DBDriver识别所有以listenerconfig=开头的jdbc连接字符串,这样如果您修改了您系统的JDBC连接字符串并添加listenerconfig=等部分以后,此url就不会被您原来的JDBC驱动认识,耳反而被DBDriver认识,这样每次的数据库连接调用也都通过DBDriver以及相关的类来进行(比如DBPreparedStatement等),这些类首先先把通过的数据库调用记录下来,然后再转发给真正的数据库驱动,这样就达到了拦截任何JDBC调用的目的。更相信内容,请参考com.cownew.JDBMonitor.jdbc包下的DBDriver、DBConnection、DBStatement、DBPreparedStatement等类。这些类采用了代理模式、装饰者模式等设计模式,使得程序的可扩展性得到很大的提升。


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· J2EE综合--java语言不一定就跨平台 (02-29) · 剖析Java的中文问题及建议最优解决方法 (02-29)
· 看对象引用是怎样严重影响垃圾收集器的 (02-29) · J2EE综合--业务逻辑和数据库访问决策 (02-29)
· Java入门:JAVA学习者要知道的几个问题 (02-29) · JDK核心API--Java中配置信息的存取 (02-29)
· JDK核心API--实际例子学正则表达式 (02-29) · 不使用泛型如何保证程序的可读性 (02-29)
· Hibernate的查询方式 (02-29) · 数据库相关--常用数据库JDBC连接写法 (02-28)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网银交易收费 我国银行业如何达国际化标准
· 家庭信息化普及率提高 网上缴费成为新时尚
· 五条黄金准则能够让CIO巧妙加薪 CIO焦虑调查
· 网上书店解决方案 深圳边检指挥中心ITSM项目
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统