26
2017
09

Photon_NHibernate的参数配置_005


第一步:

引入两个库文件,MySql.Data.dll和NHberinate.dll 文件,这次我们介绍一种新的引入方式
这里写图片描述
在没有下载的项后面会有一个小的下载标志
这里写图片描述


第二步:

配置hibernate.cfg.xml文件

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>
    <!--MySQLDataDriver 这是MySQL驱动的方式-->
    <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><!--使用什么数据库-->
    <!--MySql 连接数据的配置信息-->
    <property name="connection.connection_string">Server=localhost;Database=MyGameDB;User ID=root;Password=123456;</property>
    <property name="show_sql">true</property>
  </session-factory>
</hibernate-configuration>

第三步:

创建数据模型类;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace YYEdu.Model
{
    class User
    {
        //建议采用virtual关键字修饰属性 同时类型要和数据库中的字段类型匹配
        public virtual int Id { get; set; }
        public virtual string Username { get; set; }
        public virtual string  Password { get; set; }
        public virtual DateTime Registerdate { get; set; }
    }
}

这里写图片描述


第四步:

配置User.hbm.xml 每一个数据模型都要配置的此文件

<?xml version="1.0" encoding="utf-8" ?>
<!--assembly="YYEdu" 是工程的程序集名称 namespace="YYEdu.Model" 是数据模型 的命名空间 -->
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="YYEdu" namespace="YYEdu.Model">
<!--name="User" 是指表示数据模型的类 table="users" 是指在数据中的表-->
  <class name="User" table="users">
    <!--name="Id" 是指表示数据模型类中键值表示的变量名 column="id" 在数据库users表中所在的列是"id"列 type="Int32" 所在NHibernate中表示的类型 -->
    <id name="Id" column="id" type="Int32">
      <!--表示按照本地方式自增长-->
      <generator class="native"></generator>
    </id>
    <!--非键字段使用的是property-->
    <property name="Username" column="username" type="String"></property>
    <property name="Password" column="password" type="String"></property>
    <property name="Registerdate" column="registerdate" type ="Date"></property>
  </class>

</hibernate-mapping>

下面是有关的NHibernate,.Net和 Database之间类型的转化表

System.ValueType Mapping Types
这里写图片描述
System.Object Mapping Types
这里写图片描述
Large Object Mapping Types
这里写图片描述


上一篇:Photon_使用ExecuteReader读取数据库中的数据_003 下一篇:工厂设计模式 - 数据存储的特有方式