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

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

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

    ——希望迎著陽光奔跑!

     

    iBATIS

    IbatisNet一下簡稱Ibatis包括DataAccess和DataMapper兩部分。整個Solution包括三個主項目:

    IBatisNet.Common
    IBatisNet.DataAccess
    IBatisNet.DataMapper

    和一個輔助項目:IBatisNet.Common.Logging.Log4Net。

    Common項目是DataAccess和DataMapper的公共基礎,提供通用功能和公共服務。DataAccess是DAO框架,DataMapper是SqlMap映射框架。Common.Logging.Log4Net是對log4net日志服務的代理,利用log4net日志框架產生和輸出日志。

    二.各項目介紹
    Commons

    根目錄:
    DataSource類封裝了數(shù)據源信息,包括數(shù)據源的標志名Name,數(shù)據源的提供者Provider和數(shù)據源所代表的連接字符串ConnectionString。DataSource類有下列屬性:
    [Serializable]
    [XmlRoot("dataSource", Namespace="http://ibatis.apache.org/dataMapper")]
    類中的Property(屬性)也有[XmlAttribute]屬性(Attribute),例如public string ConnectionString屬性有[XmlAttribute("connectionString")]。
    所以類可被反序列化為xml文件,也可以直接通過XmlNode解析為對象。DataSourceDeSerializer類就是從XmlNode中讀取信息并生成DataSource類。
    DataSource屬性和配置文件中的dataSource節(jié)點對應。
    Provider類封裝了data provider(數(shù)據提供者)信息,例如程序集名稱AssemblyName,是否是默認提供者IsDefault,ConnectionClass,DataAdapterClass等提供者程序的信息。并提供了IDbCommand GetCommand(),IDbDataAdapter GetDataAdapter()等方法,為上層應用隱藏了具體驅動(數(shù)據提供程序)的細節(jié)。與DataSource一樣Provider也是可以序列化為xml文件,并通過ProviderDeSerializer.cs中的ProviderDeSerializer類從XmlNode中構造Provider實例。
    IDalSession類是Ibatis中的基礎接口。封裝了數(shù)據訪問相關的會話信息,比如數(shù)據源,連接和事物對象。用于管理數(shù)據源相關信息,比如:
    IDbCommand CreateCommand(CommandType commandType);

    ///
    /// Create an IDataParameter
    ///
    /// An IDataParameter.
    IDataParameter CreateDataParameter();

    ///
    /// Create a DataAdapter
    ///
    /// The statement or stored procedure
    /// used to select records in the data source.
    /// An IDbDataAdapter.
    IDbDataAdapter CreateDataAdapter(IDbCommand command);

    ///
    /// Create a DataAdapter
    ///
    /// An IDbDataAdapter.
    IDbDataAdapter CreateDataAdapter();
    連接管理的相關方法,比如:
    ///
    /// Open a connection.
    ///
    void OpenConnection();

    ///
    /// Open a connection, on the specified connection string.
    ///
    /// The connection string
    void OpenConnection(string connectionString);

    ///
    /// close a connection
    ///
    void CloseConnection();
    事務管理相關的方法,比如:
    ///
    /// Begins a transaction on the current connection
    /// with the specified IsolationLevel value.
    ///
    /// The transaction isolation level for this connection.
    /// Open a connection.
    void BeginTransaction(bool openConnection, IsolationLevel isolationLevel);

    ///
    /// Commit a transaction and close the associated connection
    ///
    void CommitTransaction();

    ///
    /// Commits the database transaction.
    ///
    /// Close the connection
    void CommitTransaction(bool closeConnection);

    ///
    /// Rollbak a transaction and close the associated connection
    ///
    void RollBackTransaction();

    ///
    /// Rolls back a transaction from a pending state.
    ///
    /// Close the connection
    void RollBackTransaction(bool closeConnection);
    等。

    Exception目錄:
    Exception目錄中的類定義了框架的異常類型。
    IBatisNetException是框架基礎類,其他框架異常都繼承自它。
    ConfigurationException類用于處理配置過程中出現(xiàn)的異常。
    ForeignKeyException類用于代表外鍵異常和錯誤。
    ProbeException類代表較表層的異常,通過該異常可以探究深層原因,也用于通過流節(jié)序列化并組裝成異常實例的過程(不是太清楚)。框架中在ReflectionInfo和ObjectProbe中有使用。

    Logging目錄:
    Logging目錄類似于apache jarkata中的commons log,對log進行了封裝,可以同時支持多種log實現(xiàn),并通過配置文件進行配置。不詳細說明。


    Pagination目錄:
    Pagination目錄輔助查詢分類。
    PaginatedArrayList類實現(xiàn)了IPaginatedList接口。用于維護頁碼和頁中的數(shù)據內容。維護分頁狀態(tài)實現(xiàn)分頁算法。PaginatedArrayList和具體的數(shù)據訪問無關,內部通過ArrayList容器分類。

    Transaction目錄:
    Transaction目錄中的類用于事務管理。
    IsolationLevel枚舉定義了事務的隔離級別。
    TransactionOptions結構指明了事務行為:事務時間段和隔離級別。
    TransactionScopeOptions枚舉描述了事務范圍(Transaction scope)和事務的關聯(lián)關系。
    TransactionScope用于管理分布式事務,不過只支持1.1而且對操作系統(tǒng)由要求,不支持win2000。

    Utilities目錄:
    Utilities目錄中是一些公用類。
    ConfigWatcherHandler類用于監(jiān)視配置文件以便在配置文件修改的時候進行相應的處理,比如重新加載并處理配置文件。該類中注意Timer類和FileSystemWatcher類的用法。
    DBHelperParameterCache類用于對存儲過程參數(shù)的緩存。
    HashCodeProvider類的public static int GetIdentityHashCode(object obj)方法返回obj的HashCode。
    Resources類用于簡化資源文件的訪問。可以通過流,文件和url獲取資源文件,并解析為XmlDocument。
    ScriptRunner類用于執(zhí)行sql腳本語句。
    StringTokenizer類類似于java中的StringTokenizer,可以分割字符串為字符串數(shù)組。

    Utilities/Objects目錄:
    Utilities/Objects目錄下的類主要用于反射。
    ObjectProbe由于獲取對象的反射信息和運行時值信息。
    ReflectionInfo主要緩存了類的定義信息,可以使property和get/set方法的映射更加簡單。

    Utilities/Proxy目錄:
    Utilities/Proxy目錄利用Castle DynamicProxy的代理類。
    CachedProxyGenerator繼承自Castle DynamicProxy的ProxyGenerator,通過CreateProxy方法利用ProxyBuilder.CreateInterfaceProxy(interfaces, targetType )創(chuàng)建動態(tài)代理。
    IProxyGenerator一個標志接口。
    ProxyGeneratorFactory工廠類,獲取Castle DynamicProxy的一個ProxyGenerator實例。

    Utilities/TypesResolver目錄:
    Utilities/TypesResolver目錄中的類用于類型解析。也就是利用反射和程序集從字符串構造出相應的類型。
    TypeResolver的Type Resolve (string typeName)方法從程序集中獲取類型信息。
    CachedTypeResolver繼承自TypeResolver,增加了緩存功能。
    TypeAliasResolver類定義了Ibatis內部的別名和實際類型的映射,例如list-〉new ArrayList(),以及將系統(tǒng)的內置值類型變換為相應的對象類型。

    Xml目錄:
    Xml目錄包含一個NodeUtils類,主要用于從XmlNode中解析屬性,和從NameValueCollection中獲取值,ParsePropertyTokens(string str, NameValueCollection properties) 方法用于將str中的占位符用相應的properties中的值替代。str中可以有多個占位符屬性。

    posted on 2006-06-12 16:08 Ark 閱讀(980) 評論(1)  編輯  收藏

    評論

    # re: iBATIS 2006-11-22 16:20 loook123

    比較詳細 可是有點看不懂  回復  更多評論   


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


    網站導航:
     

    導航

    統(tǒng)計

    常用鏈接

    留言簿(2)

    隨筆檔案

    Java 志士

    Tecnology collection

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产一二三精品无码| 夭天干天天做天天免费看| 又大又黄又粗又爽的免费视频| 亚洲国产精品综合久久2007| 免费国产成人18在线观看| 国产亚洲真人做受在线观看| 中文字幕成人免费高清在线视频| 亚洲国产精品专区在线观看| 日韩在线视频免费| 国产zzjjzzjj视频全免费 | 亚洲日韩乱码中文无码蜜桃臀网站| 国产精品亚洲二区在线| 免费一级毛片正在播放| 无人视频在线观看免费播放影院| 亚洲伊人tv综合网色| 日本免费A级毛一片| 亚洲av无码无在线观看红杏| 一个人看的www免费视频在线观看| 亚洲AV午夜成人影院老师机影院 | 久久久久国产精品免费网站| 日韩亚洲欧洲在线com91tv| 久久大香伊焦在人线免费| 亚洲av无码乱码国产精品| 67194国产精品免费观看| 99999久久久久久亚洲| 日本免费一本天堂在线| 日韩在线视频播放免费视频完整版 | 午夜理伦剧场免费| 亚洲自偷精品视频自拍| 毛片基地免费视频a| 亚洲av成人无码网站…| 毛茸茸bbw亚洲人| 99视频在线精品免费| 亚洲日日做天天做日日谢| 全部免费毛片在线| 国产免费无码一区二区| 亚洲 欧洲 视频 伦小说| 亚洲午夜日韩高清一区| 精品一区二区三区免费毛片爱| 免费一看一级毛片全播放| 丰满妇女做a级毛片免费观看|