NHibernate 链接 Mysql 数据 并保存数据
第一步:官网文档
http://nhibernate.info/doc/tutorials/first-nh-app/your-first-nhibernate-based-application.html
第二步:导入所需要的dll
MySql.data.dll + NHibernate.dll + Iesi.Collections(这个是因为报错后面加入的)
第三步:创建数据库和数据表
注意:安装完Mysql后连同Workbench一起安装可以帮助不懂sql 的人进行GUI界面操作
- 创建数据库:hibernate 并使用utf-8的默认(因为有可能有中文)
- 创建数据表:product 并创建数据表的列
- 创建完后如下图
第四步:创建Model
- 提示:Model就是我们的数据库对应的列
- 创建Domain文件夹 创建Product.cs类文件,并添加如下代码
namespace FirstSolution.Domain
{
public class Product
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string Category { get; set; }
}
}
第五步:创建Model的映射文件
提示:Mapping文件就是我们的Product的列和数据库里面的列的对应关系,这里也暗示了我们Model里面的名字可以和数据库的不同,但是一般情况定义为相同的
- 创建Mapping文件夹
- 创建Product.hbm.xml文件,和下面的映射代码
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="FirstSolution"
namespace="FirstSolution.Domain">
<class name="Product" table="product">
<id name="Id" column="id" type="Int32">
<generator class="native" />
</id>
<property name="Name" column="Name" type="String"/>
<property name="Category" column="Category" type="String"/>
</class>
</hibernate-mapping>
第六步:配置数据库访问文件
提示:这一步配置的内容实际上是告诉程序怎么去连接数据库
- 创建hibernate.cfg.xml文件,设置属性为复制
<?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">Data Source=localhost;Database=nhibernate;User ID=root;Password=root;</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
第七步:测试
using FirstSolution.Domain;
using NHibernate;
using NHibernate.Cfg;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FirstSolution
{
class Program
{
static void Main(string[] args)
{
var cfg = new Configuration();
cfg.Configure();
cfg.AddAssembly("FirstSolution"); //添加程序集
ISessionFactory sessionFactory = null;
ISession session = null;
try
{
sessionFactory = cfg.BuildSessionFactory();
session = sessionFactory.OpenSession();
Product user = new Product() { Name = "pengdongwei3", Category = "新插入的内容" };
session.Save(user);
}
catch (Exception e)
{
Console.WriteLine(e);
}
finally
{
if (session != null)
{
session.Close();
}
if (sessionFactory != null)
{
sessionFactory.Close();
}
}
Console.ReadKey();
}
}
}
测试结果如下图表明成功链接数据库并保存文件
没报错,我们再看下数据库 很稳 数据完美插入了