第一篇:NHibernate 链接Mysql 数据

NHibernate 链接 Mysql 数据 并保存数据

第一步:官网文档

http://nhibernate.info/doc/tutorials/first-nh-app/your-first-nhibernate-based-application.html

第二步:导入所需要的dll

MySql.data.dll + NHibernate.dll + Iesi.Collections(这个是因为报错后面加入的)

第三步:创建数据库和数据表

注意:安装完Mysql后连同Workbench一起安装可以帮助不懂sql 的人进行GUI界面操作

  1. 创建数据库:hibernate 并使用utf-8的默认(因为有可能有中文)
  2. 创建数据表:product 并创建数据表的列
  3. 创建完后如下图

这里写图片描述

第四步:创建Model
  1. 提示:Model就是我们的数据库对应的列
  2. 创建Domain文件夹 创建Product.cs类文件,并添加如下代码
namespace FirstSolution.Domain
{
    public class Product
    {
        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string Category { get; set; }
    }
}
第五步:创建Model的映射文件

提示:Mapping文件就是我们的Product的列和数据库里面的列的对应关系,这里也暗示了我们Model里面的名字可以和数据库的不同,但是一般情况定义为相同的

  1. 创建Mapping文件夹
  2. 创建Product.hbm.xml文件,和下面的映射代码
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
           assembly="FirstSolution"
           namespace="FirstSolution.Domain">
  <class name="Product" table="product">
    <id name="Id" column="id" type="Int32">
      <generator class="native" />
    </id>
    <property name="Name" column="Name" type="String"/>
    <property name="Category" column="Category" type="String"/>
  </class>
</hibernate-mapping>
第六步:配置数据库访问文件
提示:这一步配置的内容实际上是告诉程序怎么去连接数据库
  1. 创建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>
    <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
    <property name="connection.connection_string">Data Source=localhost;Database=nhibernate;User ID=root;Password=root;</property>
    <property name="show_sql">true</property>
  </session-factory>
</hibernate-configuration>
第七步:测试
using FirstSolution.Domain;
using NHibernate;
using NHibernate.Cfg;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FirstSolution
{
    class Program
    {
        static void Main(string[] args)
        {
            var cfg = new Configuration();
            cfg.Configure();
            cfg.AddAssembly("FirstSolution"); //添加程序集

            ISessionFactory sessionFactory = null;
            ISession session = null;
            try
            {
                sessionFactory = cfg.BuildSessionFactory();
                session = sessionFactory.OpenSession();
                Product user = new Product() { Name = "pengdongwei3", Category = "新插入的内容" };
                session.Save(user);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                if (session != null)
                {
                    session.Close();
                }
                if (sessionFactory != null)
                {
                    sessionFactory.Close();

                }

            }
            Console.ReadKey();
        }
    }
}

测试结果如下图表明成功链接数据库并保存文件
这里写图片描述

没报错,我们再看下数据库 很稳 数据完美插入了
这里写图片描述

猜你喜欢

转载自blog.csdn.net/pdw_jsp/article/details/80387298