一、NHibernate的介绍和程序包的引入
介绍:NHibernate是一个面向.NET环境(只能用C#做开发)的对象/关系数据库(MySQL或者其他数据库)映射工具。可以理解为一个中间件,有封装好的数据库接口,便于代码对数据库的访问。
程序包的导入如下图:
image.png
image.png
二、一些基础配置
image.png
三、数据库连接配置
image.png
image.png
nhibernate.cfg.xml文件的内容
NHibernate.Connection.DriverConnectionProvider
NHibernate.Dialect.MySQL5Dialect
NHibernate.Driver.MySqlDataDriver
server=localhost;Database=mygamedb;User ID=root;Password=root
true
四、类和表的映射
image.png
image.png
User.hbm.xml 配置文件内容、配置文件属性的设置
assembly="NHibernateMySQL"
namespace="NHibernateMySQL.Model">
image.png
五、解析两个xml文件并进行添加操作,运行后你就可以在数据中看到插入的内容。
image.png
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NHibernate;
using NHibernate.Cfg;
using NHibernateMySQL.Model;
namespace NHibernateMySQL
{
class Program
{
static void Main(string[] args)
{
var configuration = new Configuration();
configuration.Configure("nhibernate.cfg.xml");//解析 nhibernate.cfg.xml文件,要求此文件要打包到.exe中
configuration.AddAssembly("NHibernateMySQL");//解析映射文件 User.hbm.xml
AddData(configuration);
Console.ReadKey();
}
static void AddData(Configuration configuration)
{
ISessionFactory sessionFactory = null;
ISession session = null;
try
{
sessionFactory = configuration.BuildSessionFactory();
session = sessionFactory.OpenSession();//打开一个与数据库的会话
User user = new User()
{
Username = "貂蝉",
Password = "diaochan"
};
session.Save(user);
}
catch (Exception e)//捕捉异常
{
Console.WriteLine(e.ToString());
}
finally//任何情况都会执行
{
if (sessionFactory != null)
{
sessionFactory.Close();
}
if (session != null)
{
session.Close();
}
}
}
}
}