• Nhibernate学习笔记(1)


    第一个NHibernate应用程序

    环境

    VS2005、NHibernate2.0、SQL Server2005

    准备

    下载NHibernate,建立数据库表

    开始

    1、创建C# Application项目Nhbnt

    2、添加NHibernate.dll引用。由于NHibernate.dll引用了以下dll,所以同时需要这些的dll。

     Castle.Core.dll
     Castle.DynamicProxy2.dll
     Iesi.Collections.dll
     log4net.dll

    3、添加Application Configuration File:App.config,内容如下:

    app.config
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      
    <configSections>
        
    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
      
    </configSections>

      
    <!-- Add this element -->
      
    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
        
    <session-factory>
          
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
          
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
          
    <property name="connection.connection_string">
            Data Source=DBtest02\DEV;Initial Catalog=PLForecast;User ID=PLForecast;Password=PLForecast
          
    </property>
          
    <!-- Need Changed -->
          
    <mapping assembly="Nhbnt" />
        
    </session-factory>
      
    </hibernate-configuration>

    </configuration>

    4、编写持久化类(数据库对象类)

    数据库对象类
    public class Person
    {
        
    private string id;
        
    private string name;
        
    private string description;
        
    private string remark;

        
    public virtual string Id { get { return id; } set { id = value; } }
        
    public virtual string Name { get { return name; } set { name = value; } }
        
    public virtual string Description { get { return description; } set { description = value; } }
        
    public virtual string Remark { get { return remark; } set { remark = value; } }
    }

    5、编写持久化类与数据库的映射文件

    小提示

    我们要为Microsoft Visual Studio 2008添加编写NHibernate配置文件智能提示的功能。只要在下载的NHibernate里找到configuration.xsd和nhibernate-mapping.xsd两个文件并复制到X:\Program Files\Microsoft Visual Studio 9.0\Xml\Schemas目录即可。

    新建一个XML文件,命名为Person.hbm.xml。

    XML文件的默认生成操作为“内容”,这里需要修改为“嵌入的资源”

    内容如下:

    映射文件

    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Nhbnt" assembly="Nhbnt">
      
    <class name="Person" table="T_Person">
        
    <!-- A 32 hex character is our surrogate key. It's automatically generated by NHibernate with the UUID pattern. -->
        
    <id name="Id">
          
    <column name="PersonID" sql-type="varchar(50)" not-null="true"/>
          
    <generator class="uuid.hex" />
        
    </id>

        
    <!-- A cat has to have a name, but it shouldn' be too long. -->
        
    <property name="Name">
          
    <column name="PersonName" length="50" not-null="true" />
        
    </property>
        
    <property name="Description">
          
    <column name="PersonDescription" length="50" not-null="false" />
        
    </property>
        
    <property name="Remark" />
      
    </class>
    </hibernate-mapping>

    6、编写持久化管理类

    持久化管理类
    public class SessionManager
    {
        
    private static readonly ISessionFactory sessionFactory;
        
    static SessionManager()
        {
            sessionFactory 
    = new Configuration().Configure().BuildSessionFactory();
        }
        
    public ISession GetSession()
        {
            
    return sessionFactory.OpenSession();
        }
    }

    7、现在可以使用ISession进行CRUD操作了。

    代码
    //Insert
    ISession session = SessionManager.GetSession();
    ITransaction tx 
    = session.BeginTransaction();
    Persion p 
    = new Persion();
    p.Name 
    = "Persion";
    p.Description 
    = 'F';
    session.Save(p);
    tx.Commit();
    session.Close();

    //Select
    ISession session = SessionManager.GetSession();
    Persion p 
    = session.Get<Persion>("id");
    session.Close();

     结束:接下来我打算找一个持久化类的生成工具。这样将会减少很多工作。

  • 相关阅读:
    滑动窗口算法-2
    滑动窗口算法-1
    工作中缓存使用重点
    QPS的计算方法[转载]
    springAop
    spring配置详述与springboot
    LRU最少使用
    图片压缩
    Javassist使用[转载]
    [转]关于Spring事务嵌套回滚的一些测试总结
  • 原文地址:https://www.cnblogs.com/xujiaoxiang/p/1722908.html
Copyright © 2020-2023  润新知