NHibernate与MySQL数据库交互(类和表的映射)
来源:互联网 发布:开淘宝店空挂商品 编辑:程序博客网 时间:2024/05/16 14:02
原文地址:blog.liujunliang.com.cn
工具:VS2017、MySQL、SQLyog
如下图是客户端与服务器间的通信流程
上篇文章介绍到了PhotonServer服务器与Unity3d游戏客户端数据通信
本文就要介绍使用NHibernate与MySQL数据库交互
下篇文章准备编写PhotonServer调用NHibernate
·写在前面
NHibernate是一个面向.Net环境的对象到关系数据库的映射工具。
用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中。
通俗来说,就是将实例化的类对象将数据对应存储到关系型数据库的表中。
·配置数据库
下载安装MySQL数据库系统后安装SQLyog数据库客户端(可以自行选择其他客户端)
使用SQLyog创建一个自己的数据库,在数据库中添加一张数据表,这里我命名为student
如下图所示添加column
·使用NHibernate与MySQL数据交互
接着上一篇文章内容继续开发
在解决方案中创建一个控制台应用
右键项目,点击NuGet
添加库mysqldata.dll、connector.dll、nhibernate.dll
根据文档配置hibernate.cfg.xml,该配置文件的文件名和位置是固定的
<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=mydatabase;User ID=root;Password=*****;SslMode=None;</property> <property name="show_sql">true</property> </session-factory></hibernate-configuration>
NHibernate提供将一个类映射到数据库的表中
前面创建student表的时候,创建了学号、姓名、分数column
对应类也添加这三个字段
新建一个Student.cs
namespace LJL.Domain{ public class Student { public virtual int mID { get; set; } public virtual string mName { get; set; } public virtual int mScore { get; set; } }}
接下来配置映射文件Student.hbm.xml
<?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true" assembly="LJL" namespace="LJL.Domain"><!--程序集--><!--映射的类的命名空间--> <!-- more mapping info here --> <class name="Student" table="student"><!--类映射的表--> <id name="mID" column="学号" type="Int32"><!--主键类型--> <generator class="native"></generator> </id> <property name="mName" column="姓名" type="String"></property><!--属性--> <property name="mScore" column="分数" type="Int32"></property> </class></hibernate-mapping>
这样NHibernate配置文件都配置完成
最后在主函数里添加会话,将类信息映射保存到数据库中
using NHibernate;using NHibernate.Cfg;using LJL.Domain;namespace LJL{ class Program { static void Main(string[] args) { Configuration cfg = new Configuration(); //解析固定路径配置文件nhibernate.cfg.xml cfg.Configure(); //映射目标程序集 解析映射文件 Student.xml ...... cfg.AddAssembly(typeof(Student).Assembly); //创建会话工厂 ISessionFactory sessionFactory = cfg.BuildSessionFactory(); //创建会话 ISession session = sessionFactory.OpenSession(); Student sd = new Student { mID = 4, mName = "小刚", mScore = 50 }; session.Save(sd); } }}
·测试
运行程序,回到SQLyog,刷新student表
发现将我们类中的对象信息添加到了数据库中
对比之间使用MySql API,NHibernate极大地方便了我们编写代码!!!
原文地址:blog.liujunliang.com.cn
下一文:MySQL与PhotonServer数据通信
- NHibernate与MySQL数据库交互(类和表的映射)
- NHibernate如何实现对象与数据库之间的映射
- Activiti实体对象与类和数据库表的映射
- nhibernate多对多时,中间表的持久类和映射文件
- NHibernate配置文件和映射文件的详解
- 图片与mysql数据库的交互
- 实体与数据库的Xml映射标签-NHibernate入门到精通系列6
- Nhibernate映射类的动态绑定
- Nhibernate开发代码工具,自动生成实体类、NHibernate的HBM映射文件和数据访问层的代码
- Mysql数据库简介以及Mysql与python3的交互
- NHibernate映射关系表(实体映射文件字段的属性对应的NHibernate类型)
- NHibernate中实体类、Mapping配置文件与数据库表之间的关系
- NHibernate 之集合的映射与查询篇
- NHibernate配置和映射文件的IntelliSense智能提示
- NHibernate配置和映射文件的IntelliSense智能提示
- NHibernate配置和映射文件的智能提示
- Activiti 5.17 实体对象与类和数据库表的映射
- Flash8与PHP-MySQL数据库间的交互
- 【多线程简单实例】_beginthreadx实现
- 第一周集训小结
- C++类和对象及其默认成员函数
- 矩阵和向量numpy
- 火爆的NB-IoT还是迷人的LoRa, 物联网的终极PK?
- NHibernate与MySQL数据库交互(类和表的映射)
- supervisord实现守护进程,保证后台常驻进程服务的高可用
- 面试总结
- 【LeetCode】Invert Binary Tree 翻转二叉树
- 虚函数与纯虚函数
- 提取a标签的链接文字
- 线性筛法求素数【Template】
- Tencent面试总结
- 17.函数和触发器