本系列实现目的:基于Photon Server实现注册于登录

一、拷贝Nbibernate项目的文件到MyGamerServer项目中。

二、数据库新建表,结构如下

三、修改文件名和配置

  (1)、将拷贝的文件修改一下名字(不是必须)。修改为与User相关的。注意:修改文件下的包名也得修改,由 Nbibernate.l 修改为MyGameServer.

 (2)、Model文件调整。目录 Model/下的User.cs文件字段修改为与数据库users表字段相同

namespace MyGameServer.Model
{
public class User
{
//字段跟数据库表列一样
public virtual int Id { get; set; }
public virtual string UserName { get; set; }
public virtual string Password { get; set; }
public virtual string RegisterDate { get; set; }
}
}

(3)、映射文件 Mappings/ 目录下的User.hbm.xml 修改

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="MyGameServer"
namespace="MyGameServer.Model"> <class name="User" table="users">
<id name="Id" column="id" type="Int32">
<generator class="native" />
</id>
<property name="UserName" column="username" type="String" />
<property name="Password" column="password" type="String" />
<property name="RegisterDate" column="registerdate" type="String" />
</class> </hibernate-mapping>

 (4)、NHibernateHelper.cs修改

using NHibernate;
using NHibernate.Cfg; namespace MyGameServer
{
public class NHibernateHelper
{
private static ISessionFactory _sessionFactory; private static ISessionFactory SessionFactory
{
get
{
if (_sessionFactory == null)
{
var config = new Configuration();
config.Configure(); //解析nhibernate.cfg配置文件
config.AddAssembly("MyGameServer"); //解析 映射文件 ,修改为当前项目 _sessionFactory = config.BuildSessionFactory();
} return _sessionFactory;
}
} public static ISession OpenSession()
{
////打开一个跟数据库的回话
return SessionFactory.OpenSession();
}
}
}

四、测试一下

  在项目文件 MyGameServer.cs文件Setup()方法中添加测试代码

   //服务器启动时调用
protected override void Setup()
{
LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(ApplicationRootPath, "log");
GlobalContext.Properties["LogFileName"] = "MySer_" + ApplicationName;
XmlConfigurator.ConfigureAndWatch(new FileInfo(Path.Combine(BinaryPath, "log4net.config"))); log.Info("MyGameServer start----------"); //测试数据库代码
UserManager userManager = new UserManager();
User user = new User(){UserName = "ffff", Password = "dwwww"};
userManager.Add(user);
}

重新编译项目,将bin/Debug 下的文件拷贝到服务器上  deploy/MyGameServer/bin/ 目录下。(可能需要先停止服务)。在启动服务,查看数据库。

Photon Server 实现注册与登录(一) --- Hibernate整合到项目中的更多相关文章

  1. Photon Server 实现注册与登录(二) --- 服务端代码整理

    一.有的代码前端和后端都会用到.比如一些请求的Code.使用需要新建项目存放公共代码. 新建项目Common存放公共代码: EventCode :存放服务端自动发送信息给客户端的code Operat ...

  2. Photon Server 实现注册与登录(三) --- 前端UI设计和发起请求

    一.打开之前的测试项目.先将服务端代码编译一下,在 bin/Debug/目录下会发现有一个Common.dill.我们相应导入到前端使用.直接拖拽到相应地方 UI相应布局属于前端操作,这里就不做介绍了 ...

  3. Photon Server 实现注册与登录(四) --- 服务端响应登陆和注册

    前面已经整理过了服务端代码,MyGameServer.cs 和 ClientPeer.cs 对请求和响应进行了拆分.接下来处理对前端的响应 一.响应登陆请求 之前整理中,响应前端请求主要在类Clien ...

  4. Photon Server 实现注册与登录(五) --- 服务端、客户端完整代码

    客户端代码:https://github.com/fotocj007/PhotonDemo_Client 服务端代码:https://github.com/fotocj007/PhotonDemo_s ...

  5. 2017.6.30 用shiro实现并发登录人数控制(实际项目中的实现)

    之前的学习总结:http://www.cnblogs.com/lyh421/p/6698871.html 1.kickout功能描述 如果将配置文件中的kickout设置为true,则在另处再次登录时 ...

  6. Photon Server 服务端编程

    Photon Server 和 Unity3D 数据交互: Photon Server 服务端编程 Unity3D 客户端编程 VS2017 之 MYSQL实体数据模 一:Photon Server的 ...

  7. 使用JFinal框架连接数据库,实现注册、登录功能

    使用JFinal框架连接数据库,实现注册.登录功能 1.在Eclipse中新建Dynamic Web project项目 2.导入jfinal-2.2-bin-with-src.jar.c3p0-0. ...

  8. Bootstrap实战 - 注册和登录

    一.介绍 注册和登录在社交和商业网站中是必不可少的一个部分. 二.知识点 2.1 标签页 2.1.1 基础标签页 标签页的使用与导航栏类似,同时都依赖于基础样式 nav,不同的是附加样式变成了 nav ...

  9. Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用

    概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...

随机推荐

  1. 1633:【例 3】Sumdiv

    #include<bits/stdc++.h> #define ll long long using namespace std; ; ll a,b,ans=,cnt; ll p[],c[ ...

  2. Selenium结合BeautifulSoup4编写简单爬虫

    在学会了抓包,接口请求(如requests库)和Selenium的一些操作方法后,基本上就可以编写爬虫,爬取绝大多数网站的内容. 在爬虫领域,Selenium永远是最后一道防线.从本质上来说,访问网页 ...

  3. CF1197C

    CF1197C 题意: 有一个递增的数列,把它分成k段,找到这样的分段方法,即每段最大值减最小值的和最小 解法: 分成k段,即要加k-1个隔断,这k-1个隔断,能隔开差值最大的几个,那最后得到分隔后的 ...

  4. flask中用类的方式构造视图函数

    from flask import Flask from flask.views import MethodView app = Flask(__name__) class IndexView(Met ...

  5. TNetHttpClient的用法

    TNetHttpClient的用法 TNetHttpClient是DELPHI XE8新增加的控件. 在之前,我们一般都是使用IDHTTP控件,但在安卓.IOS等非WINDOWS平台,IDHTTP访问 ...

  6. DataFactory生产身份证号码==

    生产身份证号:定义数据类型为CHAR()类型的才能进行数据的组合

  7. react native Expo完全基于ScrollView实现的下拉刷新和上拉触底加载

    我直接封装成了一个组件 props参数为 static propTypes = { style:PropTypes.object, // 样式 refreshing:PropTypes.bool.is ...

  8. python实现并发服务器实现方式(多线程/多进程/select/epoll)

    python实现并发服务器实现方式(多线程/多进程/select/epoll)   并发服务器开发 并发服务器开发,使得一个服务器可以近乎同一时刻为多个客户端提供服务.实现并发的方式有多种,下面以多进 ...

  9. asp.net网站访问时不能显示页面

    web => 属性 => web => servers =>create virtual directory

  10. Tracking of Features and Edges

    目录 Joint Tracking of Features and Edges Joint Tracking of Features and Edges 1. LK光流 基本LK光流运动假设: \[ ...