<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如鵬網(wǎng) 大學(xué)生計(jì)算機(jī)學(xué)習(xí)社區(qū)

    CowNew開源團(tuán)隊(duì)

    http://www.cownew.com 郵件請聯(lián)系 about521 at 163.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      363 隨筆 :: 2 文章 :: 808 評論 :: 0 Trackbacks

    JDBMonitor(可以從www.cownew.com下載)是一個非常強(qiáng)大的數(shù)據(jù)庫監(jiān)控、日志工具,它的無侵入性是它最大的特點(diǎn)。所謂無侵入性指的是無需編寫代碼就可以為系統(tǒng)增加數(shù)據(jù)日監(jiān)控、日志功能。那么它到底是怎么實(shí)現(xiàn)的呢?咱們來探索一下它的基本原理。
    要明白JDBMonitor的工作原理,必須首先弄明白JDBC驅(qū)動的工作原理:
    所有的JDBC驅(qū)動都實(shí)現(xiàn)java.sql.Driver接口,此接口有兩個重要方法:Connection connect(String url, java.util.Properties info),boolean acceptsURL(String url)。
    JDBC中有個DriverManager類,它有一個重要方法,
    registerDriver(java.sql.Driver driver)
    所有的JDBC驅(qū)動都要調(diào)用此方法,這樣才能將注冊到驅(qū)動管理器中。
    當(dāng)用戶調(diào)用DriverManager.getConnection("jdbc:......")的時候,DriverManager就把用戶穿過來的連接字符串“jdbc:......”發(fā)給每個注冊的驅(qū)動Driver的acceptsURL方法做為參數(shù),驅(qū)動Driver就調(diào)用這個Driver的connect方法然后將方法的返回值直接做為自己的返回值。
    更詳細(xì)的解釋請查看JDBC的JavaDoc,或者參考如下文章:http://www.cntopedu.cn/cntopedu_html_itxuetang/200562963708.asp


    JDBMonitor寫了自己的JDBCDriver:DBDriver,這個DBDriver識別所有以listenerconfig=開頭的jdbc連接字符串,這樣如果您修改了您系統(tǒng)的JDBC連接字符串并添加listenerconfig=等部分以后,此url就不會被您原來的JDBC驅(qū)動認(rèn)識,耳反而被DBDriver認(rèn)識,這樣每次的數(shù)據(jù)庫連接調(diào)用也都通過DBDriver以及相關(guān)的類來進(jìn)行(比如DBPreparedStatement等),這些類首先先把通過的數(shù)據(jù)庫調(diào)用記錄下來,然后再轉(zhuǎn)發(fā)給真正的數(shù)據(jù)庫驅(qū)動,這樣就達(dá)到了攔截任何JDBC調(diào)用的目的。更相信內(nèi)容,請參考com.cownew.JDBMonitor.jdbc包下的DBDriver、DBConnection、DBStatement、DBPreparedStatement等類。這些類采用了代理模式、裝飾者模式等設(shè)計(jì)模式,使得程序的可擴(kuò)展性得到很大的提升。

    COWNEW團(tuán)隊(duì),最專業(yè)的開源團(tuán)隊(duì)!官方網(wǎng)站: www.cownew.com

    posted on 2006-05-24 02:20 CowNew開源團(tuán)隊(duì) 閱讀(951) 評論(1)  編輯  收藏

    評論

    # 請教中文亂碼的問題 re: JDBMonitor基本原理探究[未登錄] 2008-06-17 11:20 leon
    您好:
    搭建jdbmonitor成功后,用文件日志方式監(jiān)聽,但是所有的中文都是亂碼,我用UltraEdit和記事本打開均是亂碼。但是看log4j的日志,均無亂碼。
    做過以下嘗試: 修改com.cownew.JDBMonitor.listenerImpl.FileDBListener.java,將 79行,即寫日志文件之前
    String s = info.toString();
    改為
    String s = new String(info.toString().getBytes(), "GBK");
    還是沒有用,請問這個是什么問題啊?
    急盼答復(fù),謝謝您!!

    ps: 剛剛在留言板發(fā)了一條,可是提交之后就找不到了,只好再發(fā)一次,請見諒
      回復(fù)  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产精品一区二区三区免费| 色在线亚洲视频www| 精品女同一区二区三区免费播放| 免费看男女下面日出水来| 免费少妇a级毛片| 亚洲午夜精品一区二区公牛电影院 | 岛国精品一区免费视频在线观看| 免费看国产一级片| 日本高清免费中文在线看| 一区国严二区亚洲三区| 成年免费大片黄在线观看com| 免费人成网站在线高清| 一本久久免费视频| 国精无码欧精品亚洲一区| 国产成人免费ā片在线观看老同学| 亚洲人成人一区二区三区| 亚洲a一级免费视频| 亚洲欧洲视频在线观看| 国内免费高清在线观看| 日本系列1页亚洲系列| 亚洲人成网站在线观看青青| a级片免费观看视频| 亚洲美女免费视频| 午夜网站免费版在线观看| 特级毛片aaaa级毛片免费| 亚洲午夜国产精品无码| 亚洲免费观看网站| mm1313亚洲国产精品无码试看| 亚洲高清最新av网站| 免费国产成人午夜在线观看| 亚洲一级免费视频| 免费一级毛片在线播放| 日本在线免费播放| 亚洲熟妇丰满xxxxx| 亚洲性在线看高清h片| 久久免费动漫品精老司机| 亚洲а∨天堂久久精品9966| 亚洲日韩国产精品乱| 蜜臀AV免费一区二区三区| 国产产在线精品亚洲AAVV| 亚洲av女电影网|