第一篇:NHibernate 連結Mysql 資料
阿新 • • 發佈:2018-12-31
NHibernate 連結 Mysql 資料 並儲存資料
第一步:官網文件
第二步:匯入所需要的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();
}
}
}
測試結果如下圖表明成功連結資料庫並儲存檔案
沒報錯,我們再看下資料庫 很穩 資料完美插入了