• 牵一发动全身【Nhibernate基本映射】


         用牵一发动全身来形容Nhibernate的映射,一点都不夸张。小小的属性的修改,决定了整个Nhibernate的执行动态。以下让我们来详细了解一下,通过回想我们在上篇文章中用到的配置文件,做一个对xml映射文件的理解补充:   

        实体类的映射文件:

    一个实体类相应的是数据库中的一张表;类中的一个属性相应表中的一个字段;操作一个对象相应操作的的是表中的一条记录。

    <?xmlversion="1.0" encoding="utf-8" ?>
    <hibernate-mappingxmlns="urn:nhibernate-mapping-2.2" namespace="Model"assembly="Model">
      <class name="Dog"table="Dog">
        <id name="Id">
          <column name="DogId"sql-type="char(32)" />
          <generator class="assigned"/>
        </id>
        <property name="Name">
          <column name="Name"length="16"  />
        </property>
        <property name="Sex" />
        <property name="Weight" />
      </class>
    </hibernate-mapping>


    <class></class>标签是定义一个持久化类的。     

           "class name="Dog""                             持久化类的类名,这里能够是类的全名。

            table="Dog"                            相应的数据库表名。

    <id><id>标签定义了该属性到数据库表主键字段的映射。

        property  name="Id"                           标识属性的名字。

            sql-type="char(32)"                              NHibernate类型的名字

           column name="DogId"                          主键字段的名字。

    <property></property>标签是类定义了一个持久化类的属性。

    name="propertyName"                           属性名

            column="column_name"                          相应的数据库字段名。

            type="typename"                               NHibernate类型的名字。


        Nhibernate运作方式的配置文件,主要是配置session工厂:

    <strong><</strong>?xmlversion="1.0" encoding="utf-8" ?>
    
    <hibernate-configurationxmlns="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">
    
         Server=(local);uid=sa;pwd=123456;database=quickstart //将该属性的填写改成你自己的数据库连接符
    
        </property>
    
        <property name="hbm2ddl.auto">update</property>
    
        <mapping assembly="Model"/>
    
      </session-factory>
    
    </hibernate-configuration>

     <property name="dialect">    配置 数据库方言 ,针对不同的数据有不同配置,当前配置的是Sqlsever的方言

     <property name="connection.provider">    配置 连接池

      <property name="connection.connection_string">      属性值大家看着肯定熟悉,对,是配置连接数据库的字符串

    <property name="hbm2ddl.auto">    该属性的配置,决定Nhibernate的执行,是否会自己主动生成数据库表

     <mapping assembly="Model"/>      这里的属性 配置 要载入的实体类的配置文件所在的程序集

    每一个属性的值,都还有非常多的不同配置,自己可通过查阅API手冊,具体地去学习,这里仅仅做简单的分享。

    总结:配置文件给我们的程序带来了非常大的优点,从抽象工厂,到Nhibernate无处不彰显着它给程序带来的灵活性。配置文件,一定会大行其道吧!

  • 相关阅读:
    2017年第八蓝桥杯C/C++ A组国赛 —— 第二题:生命游戏
    451. 根据字符出现频率排序
    剑指 Offer 40. 最小的k个数
    list使用详解
    STL---priority_queue
    1046. 最后一块石头的重量
    739. 每日温度
    921. 使括号有效的最少添加
    STL----stack
    173. 二叉搜索树迭代器
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4057918.html
Copyright © 2020-2023  润新知