• nhibernate source code analyzed (abstract classes in nhibernate2.0)


    看了DLL命名空间兄弟翻译的Nhibernate教程,仍是一头雾水,因为没有一个完整的实例作为参照,比较抽象。有人说用单元测试的方式来学习,不失为一种好方法,我的想法是如果要更好更系统的学习这个框架,分析其源代码是最本质的解决方法,简单看了一下nhibernate-2.0的源码,要读懂别人的Code,真不是一件容易的事情,就像一堆乱麻,根本不知道如何下手。先生成个类关系图:

    关系图太大了,以致显示的很小。
    分析下主要的抽象类:
    1.JoinFragment - 声明SQL连接的抽象类
    2.Constraint - 描述数据库中关系约束的基类,实现IRelationalModel接口.
    3.接口IQuery-NHibernate查询面向对象描述接口,从ISession.CreateQuery()可以获得接口实例
    4.AbstractQueryImpl-IQuery的抽象实现
    5.AbstractType - 实现IType接口的抽象基类
    6.SqlBaseBuilder-全部SqlBuilders类的抽象基类
    7.ScheduledEntityAction - 在fulsh的时候执行一个实体计划动作的抽象基类
    8.EnumStringType-映射枚举类型成为DbType.String类型的抽象基类
    9.ValueTypeType-ValueType的超级类
    10.NullableType-映射属性到一个列,这个列可以允许存储nulls
    11.CollectionType- 映射集合类的抽象基类
    12.ImmutableType-能够存储null的固有类性的超级类
    以后会根据这些基类,逐渐学习一下其实现类。从而达到学习nhibernate.
  • 相关阅读:
    Object转bigdecimal
    如何在A用户下建立视图,这个视图是A的表与B的表进行关联的?
    java.util.Date和java.sql.Date的区别和相互转化(转)
    JAVA如何获取GUID
    详解Oracle DELETE和TRUNCATE 的区别(摘)
    分开显示Excel2010打开的文档
    CentOS实验三:使用安装光盘建立本地软件源
    基本C库函数
    Shell_2(验证符合的输入)
    Shell_1(目录之间切换执行脚本)
  • 原文地址:https://www.cnblogs.com/jillzhang/p/481733.html
Copyright © 2020-2023  润新知