zoukankan      html  css  js  c++  java
  • 牵一发动全身【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无处不彰显着它给程序带来的灵活性。配置文件,一定会大行其道吧!

  • 相关阅读:
    什么是 bean 的自动装配?
    什么是 Spring 的内部 bean?
    什么是 Spring 的 MVC 框架?
    Spring AOP and AspectJ AOP 有什么区别?
    解释 JDBC 抽象和 DAO 模块?
    volatile 类型变量提供什么保证?
    一个 Spring Bean 定义 包含什么?
    什么是 Spring MVC 框架的控制器?
    使用 Spring 访问 Hibernate 的方法有哪些?
    什么是 Callable 和 Future?
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4057918.html
Copyright © 2011-2022 走看看