C#通过NHibernate访问MySQL数据库

    今天是周末,小编来总结一下使用NHibernate插件去访问MySQL数据库以达到增强记忆的目的。众所周知,MySQL官方提供的有与C#进行交互的dll(既Mysql.Data),这种方式是直接进行访问,在实际的项目中这种的方式比较麻烦,而NHibernate是通过ORM对象关系映射)的方式去访问MySQL,接下来让我们开始探索NHibernate吧!

·NHibernate介绍

NHibernate的官网

NHibernate是一个面向.Net环境的对象到关系数据库的映射工具。

用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中。

通俗来说,就是将实例化的类对象将数据对应存储到关系型数据库的表中。

·需要添加的引用

Mysql.Data

NHibernate

·注意事项

做为访问MySQL的项目的程序集名称不能有中文,因为后面配置访问数据库的文件(针对于数据库)和映射文件的配置(针对于C#中的类)需要使用到这个项目的程序集,这些配置文件包括配置文件的名字都是有一定的格式的,详情请查看文档

配置访问数据库的文件

hibernate.cfg.xml(访问数据库的配置文件的名称必须为hibernate.cfg.xml,否则NHibernate找不到这个配置文件






  
    NHibernate.Connection.DriverConnectionProvider
    NHibernate.Dialect.MySQL5Dialect
    NHibernate.Driver.MySqlDataDriver
    
    
      Server=192.168.21.128;Port=3306;Database=mygamedb;
      User ID=root;Password=root;SslMode = none;Allow Zero Datetime=True;
    


    true
  

并将hibernate.cfg.xml设置为始终复制

C#通过NHibernate访问MySQL数据库_第1张图片

根据数据库中的表的结构去创建C#中的映射类(模板)

users映射类

namespace NHibernateMySQL.Mode
{
    public class users
    {
        //根据 NHibernate 的要求,所以要加 virtual 
        public virtual int userid { get; set; }
        public virtual string username { get; set; }
        public virtual string userpassword { get; set; }
        public virtual DateTime userdatatime { get; set; }
    }
}

创建完映射类之后就要去配置映射文件了,值得注意是所有的映射文件都要放入名称为“Mapping”的文件夹下C#通过NHibernate访问MySQL数据库_第2张图片

配置映射文件

users.hbm.xml(.hbm.xml)





  !
  
  

  
  
    
    
      
    
    
    
    
  

并将users.hbm.xml设置为不复制,嵌入资源

C#通过NHibernate访问MySQL数据库_第3张图片

所有的环境配置工作完成后就可以进行访问数据库了

下面是访问数据库的操作

using System;
using NHibernate;
using NHibernate.Cfg;
using NHibernateMySQL.Mode;

namespace NHibernateMySQL
{
    internal class Program
    {
        //ISessionFactory是与数据库会话的类
        static ISessionFactory mySessionFactory = null; //默认为空
        static ISession mySession = null;//默认为空
        private static void Main(string[] args)
        {
            //进行配置的解析
            var myConfiguration = new Configuration();//利用Configuration去解析配置
            myConfiguration.Configure(); //解析nhibernate.cfg.xml-(访问数据库的配置文件),这个是配置文件是自动
            myConfiguration.AddAssembly("NHibernateMySQL"); //解析映射文件-users.hbm.xml ,因为映射文件是嵌入资源所以需要指定程序集,
            //TODO:所以的配置文件解析完成后就可以对数据库进行操作了
            try
            {
                //在这里进行与数据库的连接,有可能会发生一些未知的错误。所以,要在这里进行捕捉
                mySessionFactory = myConfiguration.BuildSessionFactory(); //创建一个跟数据库连接的工厂
                mySession = mySessionFactory.OpenSession(); //打开与数据库的会话
                //使用C#中的映射类来对数据库中的表进行操作
                var myUser = new users {userid = 0, username = "呼呼呼", userpassword = "pass2333"}; //初始化一个用户对象
                mySession.Save(myUser); //增加
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                if (mySessionFactory != null)
                    mySessionFactory.Close(); //使用完毕后,关闭工厂
                if (mySession != null)
                    mySession.Close(); //使用完毕后,关闭会话通道
            }

            Console.ReadKey();
        }
    }
}

以上就是C#通过NHibernate访问操作MySQL数据库的全部步骤了,同学们有没有get到这个技能呢,如果有什么学习问题可以在下面评论我会第一时间回复,比较着急的同学可以加我QQ(1329443207),我们再进一步讨论

以上是我的学习步骤,如有错误,欢迎指正!

你可能感兴趣的:(C#通过NHibernate访问MySQL数据库)