游戏服务器搭建1(借助NHibernate)

102 阅读1分钟

1、配置NHibernate连接Mysql数据库

①首先在visual studio中引入包:右击项目->管理NuGet程序包->然后搜索并引入符合当前版本的程序包即可。

②新建项->XML文档,然后找到官方的指南,粘贴内容到XML中并修改,需要针对数据库类型等内容做修改,并修改文件属性"复制到输出目录"为“始终复制”。(hibernate.cfg.xml,必须设置为此默认名称)

(官方关于hibernate.cfg.xml的解释) image.png

(官方指南)nhibernate.info/doc/tutoria…

<?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">Server=localhost;Database=mygamedb;User Id = root;Password=;</property>

    <property name="show_sql">true</property>
  </session-factory>
</hibernate-configuration>

③针对数据库表的内容添加对应映射,也是XML文件(Users.hbm.xml),修改文件属性“生成操作”为“嵌入的资源”。

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="NHibernate_sql" 
                   namespace="NHibernate_sql.Model"> <!--程序集及命名空间,可在解决方案的属性中查看-->

  <class name ="Users" table="users">
    <id name="Id" column="id" type ="int"><!--主键-->
      <generator class ="native"></generator>
    </id>
    <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>

④针对内容添加Users.cs,用于和数据库的映射,对应表名中的各属性

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

namespace NHibernate_sql.Model
{
    public class Users
    {
        public virtual int Id { get; set; }
        public virtual string Username { get; set; }
        public virtual string Password { get; set; }
        public virtual DateTime Registerdate { get; set; }
    }
}

⑤新建Program.cs文件,利用session实现对数据库的操作

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NHibernate;
using NHibernate.Cfg;
using NHibernate_sql.Model;

namespace NHibernate_sql
{
    class Program
    {
     
        static void Main(string[] args)
        {
            var configuration = new Configuration();
            configuration.Configure();//默认解析hibernate.cfg.xml,也可以添加解析内容
            configuration.AddAssembly("NHibernate_sql");//解析映射文件

            ISessionFactory sessionFactory = null;
            ISession session = null;
            try
            {
                sessionFactory = configuration.BuildSessionFactory();

                session= sessionFactory.OpenSession();//打开一个和数据库的会话

                Users user = new Users() { Username = "dsajkf", Password = "3123123" };

                session.Save(user);

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            finally 
            {
                if (session != null) 
                {
                    session.Close();
                }
                if (sessionFactory != null) 
                {
                    sessionFactory.Close();
                }
            }
            Console.ReadKey();
        }
        
    }

}

ps:关于数据库的简单配置看这篇吧 cloud.tencent.com/developer/a…

WarmpServer(下载可免配置Mysql环境)软件下载的话www.onlinedown.net/soft/118187…