JDBMonitor基本原理探究
2006-05-24 02:20
239 查看
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方法然后将方法的返回值直接做为自己的返回值。
更详细的解释请查看JDBC的JavaDoc,或者参考如下文章:http://www.cntopedu.cn/cntopedu_html_itxuetang/200562963708.asp
JDBMonitor写了自己的JDBCDriver:DBDriver,这个DBDriver识别所有以listenerconfig=开头的jdbc连接字符串,这样如果您修改了您系统的JDBC连接字符串并添加listenerconfig=等部分以后,此url就不会被您原来的JDBC驱动认识,耳反而被DBDriver认识,这样每次的数据库连接调用也都通过DBDriver以及相关的类来进行(比如DBPreparedStatement等),这些类首先先把通过的数据库调用记录下来,然后再转发给真正的数据库驱动,这样就达到了拦截任何JDBC调用的目的。更相信内容,请参考com.cownew.JDBMonitor.jdbc包下的DBDriver、DBConnection、DBStatement、DBPreparedStatement等类。这些类采用了代理模式、装饰者模式等设计模式,使得程序的可扩展性得到很大的提升。
COWNEW团队,最专业的开源团队!官方网站: www.cownew.com 本文出自 “CowNew开源团队” 博客,转载请与作者联系!
要明白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方法然后将方法的返回值直接做为自己的返回值。
更详细的解释请查看JDBC的JavaDoc,或者参考如下文章:http://www.cntopedu.cn/cntopedu_html_itxuetang/200562963708.asp
JDBMonitor写了自己的JDBCDriver:DBDriver,这个DBDriver识别所有以listenerconfig=开头的jdbc连接字符串,这样如果您修改了您系统的JDBC连接字符串并添加listenerconfig=等部分以后,此url就不会被您原来的JDBC驱动认识,耳反而被DBDriver认识,这样每次的数据库连接调用也都通过DBDriver以及相关的类来进行(比如DBPreparedStatement等),这些类首先先把通过的数据库调用记录下来,然后再转发给真正的数据库驱动,这样就达到了拦截任何JDBC调用的目的。更相信内容,请参考com.cownew.JDBMonitor.jdbc包下的DBDriver、DBConnection、DBStatement、DBPreparedStatement等类。这些类采用了代理模式、装饰者模式等设计模式,使得程序的可扩展性得到很大的提升。
COWNEW团队,最专业的开源团队!官方网站: www.cownew.com 本文出自 “CowNew开源团队” 博客,转载请与作者联系!
相关文章推荐
- JDBMonitor日志输出探究(做executeBatch时发现一个BUG所引发的)
- 设计模式--JDBMonitor的基本原理探究
- Lucene学习总结之一:全文检索的基本原理
- (马哥教育)web服务器基本原理与Nginx(更新至第二段)
- GPS定位基本原理浅析
- C/C++语言中闭包的探究及比较
- 应用程序基本原理(Application Fundamentals)
- Java程序员从笨鸟到菜鸟之(一百零八)一步一步学习webservice(二)webservice基本原理
- 段页式系统的基本原理
- UDA1341声卡传输基本原理
- 《coredump问题原理探究》windows版5.3节结构体
- Dll2lib探究
- C#异步编程之:(一)Task对象和lamda表达式探究
- Java socket通信基本原理介绍
- 由浅入深探究mysql索引结构原理、性能分析与优化-转
- 界面微质感探究
- 专业探究:诺基亚为啥耐摔
- Ajax基本原理
- 浏览器探究
- iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理